IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 高可用设计-容错机制 -> 正文阅读

[网络协议]高可用设计-容错机制

今天在我司的RPC框架中看到一个参数,如果配置了fail-fast则可设置重试次数和重试间隔时间,配置了fail-over是另一套重试次数和重试间隔时间,借此了解下保证高可用的几种常见的容错机制。

FailOver(故障转移)

failOver是一个动作(或行为),指服务器,系统,硬件,网络在出错的情况下,切换至副本或者备份的行为。failOver和switchOver基本上是相同的操作,前者强调自动切换,后者需要人工介入。系统设计都需要提供支持failOver的特性来提升高可用度。在服务的层面,自动failOver通常需要在两个server之间维护“心跳”,只要“心跳”在主备server之间通信正常,备份的server就不会启用。可能还会有第三方的server来通过运行其他组件来保证“热切换”,副本机器接收到心跳的变化就开始接管工作,有些系统也会通过发送failOver的通知来实现。(这里的热切换指可以快速从主server切换到备份server,而冷切换指系统服务会停止,等待一段时间后继续工作)

FailBack(故障恢复)

failBack是指系统恢复的过程,系统和组件恢复到failOver前的状态,并把备份节点恢复到备份的状态。

Fail-Fast(快速失败)

fail-fast是一个特性,代表系统可以在很有可能出错的场景下立即报错的特性。fail-fast的系统通常被设计成尽可能禁止操作而不是允许可能的错误流程。这种设计通常是在操作的过程中,校验系统的状态,以此校验出任何的错误。fail-fast模块的职责就是检查错误,然后让更上层的系统来处理错误。在jdk中,ArrayList的设计就是具有fail-fast特性的,如果在遍历的过程中有对List本身的改动,会通过modCount字段进行校验,校验失败会直接抛出ConcurrentModificationException。

Fail-Safe(安全失败)

fail-safe是一个特性,当出现一个错误时,通过一种尽可能减小对系统和用户的损失和方式来响应的特性。如果一个fail-safe的系统发生了异常,它会表现的尽可能安全(如果有些系统要持续性的保证高可用,那么就不能设计为fail-safe的系统)。举个例子,电梯有一个根据绳索压力控制的刹车,如果绳子断了,压力为0,这时候就会启动该刹车保证电梯不会下落,这就是一种fail-safe机制。个人理解fail-safe是一种兜底的设计思路,即使系统出错,会有planB来保证系统尽可能地工作。看很多人说CopyOnWriteArrayList是fail-Safe的,我是不太认可这个观点的,它只是设计为Thread-safe,和fail-safe没太大关系。

补充

除了上面几种类型之外,服务间实现高可用还有并行调用(forking,即同时调用多个服务节点,哪个成功用哪个结果),广播(broadcast,逐个调用所有的服务节点,有一个报错则报错)等方式,这里不展开了…

Reference

https://en.wikipedia.org/wiki/Failover

https://en.wikipedia.org/wiki/Fail-fast

https://en.wikipedia.org/wiki/Fail-safe

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:19:48  更:2021-12-14 16:20:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:19:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码