最全最简单的dubbo教程-集群容错《十四》

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jingyangV587/article/details/85628086

在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。
dubbo提供了以下几种集群容错模式:

Failover Cluster

官方解释
失败自动切换,当出现失败,重试其它服务器 。通常用于读操作,但重试会带来更长延迟。可通过 retries=“2” 来设置重试次数(不含第一次)。
解释说明:
很好理解,当调用失败的时候自动重试其它服务器在有限次数之内,直到成功才停止调用。
配置方法:
<dubbo:service retries=“2” /> 或:
<dubbo:reference retries=“2” />
或:
< dubbo:reference />
<dubbo:method name=“findFoo” retries=“2” /> </dubbo:reference>

Failfast Cluster

官方解释
快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。
解释说明:
意思系统只发一次请求,无论成功失败仅一次调用。
配置方法:
<dubbo:service cluster=“failfast” /> 或:
<dubbo:reference cluster=“failfast” />

Failsafe Cluster

官方解释
失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
配置方法:
<dubbo:service cluster=“failsafe” /> 或:
<dubbo:reference cluster=“failsafe” />

Failback Cluster

官方解释
失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
解释说明:
这个设置表示必须请求成功,注意是请求,就算服务者程序报错也是成功的一次请求,初学者容易造成误解,我刚开始也对这个晕了很久。这个测试起来感觉不太好测试,而且个人感觉这个功能比较鸡肋,可以在调用的时候打上断点,然后关闭服务就可以制造一次失败的调用。在FailbackClusterInvoker类中如图:
在这里插入图片描述
调用失败的情况下会调用一个方法,这个方法如图:
在这里插入图片描述
这里会触发一个定时器,每五秒扫描一下有没有调用失败的实例,调用失败的情况下进行重试。
配置方法:
<dubbo:service cluster=“failback” /> 或:
<dubbo:reference cluster=“failback” />

Forking Cluster

官方解释
并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=“2” 来设置最大并行数。
配置方法:
<dubbo:service cluster=“forking" />
或:
<dubbo:reference cluster=“forking" />

Broadcast Cluster

官方解释
广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。
配置方法:
<dubbo:service cluster=“broadcast " />
或:
<dubbo:reference cluster=“broadcast " />

参考博客:
https://blog.csdn.net/u014401141/article/details/71307820
https://blog.csdn.net/u011642663/article/details/81949941

猜你喜欢

转载自blog.csdn.net/jingyangV587/article/details/85628086