20.Dubbo集群容错

2020-09-14  本文已影响0人  山海树

Failvoer Cluster:失败重试

<dubbo:reference retires="2"/>针对当前接口的所有方法,失败后重试两次
<dubbo:reference>
<dubbo:method name="sayHello" retries="2”/> 针对当前接口的sayHello方法,重试
</dubbo:reference/>

Failfast Cluster:快速失败

Failsafe Cluster:安全失败 -----失败忽略异常

Failback Cluster:失败自动恢复,失败后记录日志,并按照一定的策略后期在进行重试。

Forking Cluster:并行调用

当消费方调用一个接口方法后,Dubbo Client会并行调用多个服务提供者的服务,只要其中有一个成功就返回。
<dubbo:reference id="userService" interface="com.test.UserService" group ="dubbo" version="1.0.0'
cluster="forking">
<dubbo:parameter key="forks" value="4"/>
</dubbo:reference>

Broadcast Cluster:广播调用

当消费者调用一个接口后,Dubbo Client逐个调用所有服务提供者,任意一台服务器调动异常则这次调用标志位失败。

所有的集群容错策略都是集成自抽象类AbstractClusterInvoker。

在消费端真的调用方法的时候会根据集体的配置最终调用到Cluster的具体实现类,该实现类在doInvoker()的时候会去RegistryDirectory管理的RouterChain的route()获取invoker列表。
最终执行调用。

1.Failfast Cluster---失败抛异常

image.png

2.Failsafe Cluster---失败不会抛异常

image.png

3.Failover Cluster---从url中获取重试次数,循环根据负载均衡选调用者进行调用

image.png

4.Failback Cluster---失败记录,创建定时器去执行后续操作

image.png
image.png

5.Forking Cluster---根据forks确定并行执行的invoker数

image.png

6.Boradcast Cluster---所有全发

image.png

自定义集群容错策略

image.png
image.png
image.png image.png
上一篇下一篇

猜你喜欢

热点阅读