1.failover:失效转移

失效转移(failover)是一种备份操作模式,当主要组件由于失效或预定关机时间的原因而无法工作时,这种模式中的系统组件(比如处理机、服务器、网络或数据库)的功能被转嫁到二级系统组件。对于希望使系统具有更高的故障容忍力,失效转移是一定会被经常使用的紧急任务系统的主要部分。这个程序包括自动卸下任务交给备用系统组件,这样程序对于终端用户能够尽可能的无故障。失效转移能应用于系统的许多方面:举个例子,在个人电脑内部,失效转移也许是保护故障的处理机的一种机制;在网络内部,失效转移能够应用于许多网络组件或系统组件,比如连接通路、存储设备或者环球网服务器。

最初,存储数据在非常基本的配置下被连接到服务器:点对点或者交叉连接。在这种环境下,单一服务器的故障常常使得大量的用户无法访问数据,直到那个服务器重新在线服务。近来有更多的发展,比如存储区域网络(SAN),在服务器和数据存储系统之中建立许多到许多的连通性。通常,存储网络在服务器和系统之间使用许多通路(每个通路由包括所有有关组件的完全的配置组成)。一个失效的通路可能是由于通路上一些单独组件的故障。多重连接通路(每个通路都有多余组件)常常帮助确保线路在一个(或多个)通路失效情况下仍然可行。自动失效转移(failover)的能力在于尽管由于设备问题导致必然的故障然而正常功能仍能被维持。

其要点在于有主有备,且主故障时备可启用,并设置为主。如Mysql的双Master模式,当正在使用的Master出现故障时,可以拿备Master做主使用。

2.failfast:快速失败

从字面含义看就是“快速失败”,尽可能的发现系统中的错误,使系统能够按照事先设定好的错误的流程执行,对应的方式是“fault-tolerant(错误容忍)”。以JAVA集合(Collection)的快速失败为例,当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常(发现错误执行设定好的错误的流程),产生fail-fast事件。

要了解fail-fast机制,我们首先要对ConcurrentModificationException 异常有所了解。当方法检测到对象的并发修改,但不允许这种修改时就抛出该异常。同时需要注意的是,该异常不会始终指出对象已经由不同线程并发修改,如果单线程违反了规则,同样也有可能会抛出该异常。

诚然,迭代器的快速失败行为无法得到保证,它不能保证一定会出现该错误,但是快速失败操作会尽最大努力抛出ConcurrentModificationException异常,所以因此,为提高此类操作的正确性而编写一个依赖于此异常的程序是错误的做法,正确做法是:ConcurrentModificationException 应该仅用于检测 bug。

3.failback:失效自动恢复

Fail-over之后的自动恢复,在簇网络系统(有两台或多台服务器互联的网络)中,由于要某台服务器进行维修,需要网络资源和服务暂时重定向到备用系统。在此之后将网络资源和服务器恢复为由原始主机提供的过程,称为自动恢复

4.failsafe:失效安全

Fail-Safe的含义为“失效安全”,即使在故障的情况下也不会造成伤害或者尽量减少伤害。维基百科上一个形象的例子是红绿灯的“冲突监测模块”当监测到错误或者冲突的信号时会将十字路口的红绿灯变为闪烁错误模式,而不是全部显示为绿灯。

在Java中,Failsafe是一个轻量级的,零依赖的库,用于处理Java 8+中的故障,并具有用于处理日常用例的简洁API和处理其他所有内容的灵活性。它通过将可执行逻辑与一个或多个弹性策略包装在一起来工作,这些弹性策略可以根据需要进行合并和组合。当前策略包括重试,超时,Fallback和CircuitBreaker。

5.forking

并行调用多个实例,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=”2” 来设置最大并行数。通过 timeout=”1000” 来设置调用超时时间。

forking的实现逻辑:计算目前需要的并发数,通过负载均衡算法选中被调用实例列表,并发地调用实例列表,并将处理结果成功的放到阻塞队列中,获取处理结果队列中的第一个结果,判断是否是异常,是异常则抛出,不是异常则返回结果。

集群容错机制:failover、failfast、failback、failsafe、forking相关推荐

  1. Java编程解密-Dubbo负载均衡与集群容错机制

    1 Dubbo简介 Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 作为一个轻量级RPC框架,Du ...

  2. dubbo调用失败策略_面试官:dubbo负载均衡策略,集群容错策略,动态代理策略有哪些...

    面试官心理分析 继续深问吧,这些都是用 dubbo 必须知道的一些东西,你得知道基本原理,知道序列化是什么协议,还得知道具体用 dubbo 的时候,如何负载均衡,如何高可用,如何动态代理. 说白了,就 ...

  3. Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些?

    Dubbo面试 - dubbo 负载均衡策略和集群容错策略都有哪些? 面试题 dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略呢? 面试官心理分析 继续深问吧,这些都是用 dubbo 必须 ...

  4. Apache Dubbo集群容错

    在分布式应用中(微服务),通常会对服务进行集群部署来保障服务高可用.dubbo用于服务远程调用,远程服务是有可能出现异常情况的,如网络抖动,服务短暂不可用等情况,需要自动容错,服务降级或者mock测试 ...

  5. Dubbo负载均衡、集群容错

    负载均衡策略 random loadbalance 随机负载均衡,默认情况下,dubbo 是 random load balance ,即随机调用实现负载均衡,可以对 provider 不同实例设置不 ...

  6. dubbo负载均衡策略和集群容错策略

    dubbo负载均衡策略 random loadbalance 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权 ...

  7. Dubbo的负载均衡、集群容错、服务降级等机制详解

    文章目录 1. Dubbo与RPC的关系 2. Dubbo的基本使用 2.1 Dubbo是什么? 2.2 负载均衡 2.3 服务超时 2.4 集群容错 2.5 服务降级 2.6 本地存根 2.7 参数 ...

  8. Dubbo 的集群容错模式:Failover Cluster

    集群容错系列文章: Failover Cluster 失败自动切换 Failfast Cluster 快速失败,抛出异常 Failsafe Cluster 快速失败,不抛出异常 Failback Cl ...

  9. 常见的容错机制+failover+failback

    常见的容错机制+failover+failback 什么是failover? [电脑][数据库]失效备援 (为系统备援能力的一种,当系统中其中一项设备失效而无法运作时,另一项设备即可自动接手原失效系统 ...

  10. Dubbo 源码分析 - 集群容错之 Cluster

    1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上.对于一些负载比较高的服务,会部署更多台服务器.这样,同一环境下的服务提供者数量会大于1.对于服务消费者来说,同一环境下出现了多个服务提供 ...

最新文章

  1. 执行Shell脚本的4种方法
  2. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
  3. mysql的还原_MySQL 还原
  4. 数据中心冷却水系统的一种节能优化控制策略
  5. SAPMMC控制台服务消失的解决方法
  6. 【小米校招笔试】给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次
  7. .NET 状态机Automatonymous快速入门
  8. ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程
  9. 汇付 支付,痛苦的接入过程
  10. echarts实现动态的图表
  11. 博弈论与计算机,《黑 | 科技》| 人类的博弈论,计算机来背锅
  12. matlab篮球队需要五名队员,球队战绩影响因素分析.doc
  13. 思科防火墙应用NAT
  14. 树莓派配套系统_3.95寸配套树莓派显示屏,移植好操作系统,普及树莓派显示屏...
  15. laravel 验证手机号
  16. 阿里系产品Xposed Hook检测机制原理分析
  17. 如何使用云桌面进行开发?
  18. 怎么调出全局搜索_华为手机怎么设置全局搜索,怎么开启以及怎么关闭
  19. Windows 10, version 22H2 (updated March 2023) 简体中文版、英文版下载
  20. 如何在MAC OS中使用HAXM?

热门文章

  1. 续流二极管作用及工作原理
  2. 微分方程_e的矩阵指数
  3. ppm/℃是什么单位?什么意思?
  4. 1篇SCI二区+4篇一类可定A档博士!110万房补,享副教授甚至教授待遇!
  5. 用 JS 给图片加文字水印或图片水印
  6. 前端面试题(带答案)
  7. 解锁system分区
  8. 新计算机c盘太小,Windows自带C盘扩容方法,c盘太小怎么重新分区
  9. C盘太小,调整磁盘分区大小
  10. 在linux上压缩文件,Linux上压缩文件的 5 种方法