容错机制记录

当我们使用某些功能的时候,有时候不一定会成功,那么我们将采取什么样的策略处理这种异常情况呢,下面我们通过例子说明

在这里插入图片描述
如上图所示,app2通过网络调用app1接口,app1是是由三台机器共同组成的集群

failfast快速故障

当系统发生错误,立即反馈错误

eg1:当app2携带错误Token访问app1接口时,app1立即反馈错误信息

failsafe故障安全

当系统发生错误,将故障在不会造成影响或尽量减少影响

eg1:当app2调用接口查询app1某些接口时,如查询IPhone 10终端手机的颜色,app1内部发生了异常,此时不反馈错误信息,而是返回“未知”信息。对于app2来说,并不会感知接口调用发生异常,会按照正常情况继续处理

failover故障切换

当系统发生错误,我们再对其他系统进行尝试

eg1:当app2调用接口查询app1某些接口时,首先调用接口的app1(192.168.1.100),若失败,我们再尝试app1(192.168.1.101)、app1(192.168.1.102);系统处理一个高可用状态,停止其中任意一台应用,系统也可以正常运行

failback故障自动恢复

当系统发生错误,应用程序对故障进行自我修复处理;如何理解这个自我修复过程

  • 网络抖动问题,有时候网络可能会出现故障,导致程序调用出现一些异常,程序收到异常以后,可以等一下再重试调用接口,等多久以及尝试多少次,怎么控制就是一个自我修复的手段
  • 流量降级问题,当网络出现访问量急剧增大时候,我们的系统资源不够用,我们可以直接反馈用户等下试试

eg1:当app2调用接口查询app1某些接口时发生错误,剩下间隔30s再重试,重试不超过3次

以上即是容错机制错误的几种处理方式

dubbo容错方案

在这里插入图片描述
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries=“2” 来设置重试次数(不含第一次)。

Failfast Cluster
快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。

Failsafe Cluster
失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。

Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值