Dubbo集群容错机制解析

Dubbo提供了六种集群容错机制:FailOver、FailFast、FailSafe、FailBack、Forking和Broadcast。FailOver是默认策略,失败后会重试;FailFast立即报错,常用于非幂等操作;FailSafe会忽略异常;FailBack自动恢复失败请求;Forking并行调用多台,一成功即返回;Broadcast逐个调用,一台报错则整体失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo的集群容错机制分为6种,分别是:FailOver,FailFast,FailSafe,FailBack,Forking,Broadcast。

1.FailOver:

  • 失败自动切换,当出现失败,重试其它服务器。(缺省)
  • 通常用于读操作,但重试会带来更长延迟。
  • 可通过retries=”2”来设置重试次数(不含第一次)。
<dubbo:service retries="2" />

或者

<dubbo:reference retries="2" />

或者

<dubbo:reference>
    <dubbo:method name="findFoo" retries="2" />
</dubbo:reference>

2.FailFast

  • 快速失败,只发起一次调用,失败立即报错。
  • 通常用于非幂等性的写操作,比如新增记录。
    :新增记录是非幂等性的写操作,因为每次新增都会使数据库产生一条新的记录;而删除操作是幂等性的操作,因为只要删除一次后,以后每次删除的结果都不会改变数据库的内容。

3.FailSafe

  • 失败安全,出现异常时,直接忽略。
  • 通常用于写入审计日志等操作。
    :可以理解为 This fail is very safe. 不会影响到系统的其他部分

4.FailBack

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

5.Forking

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

6.Broadcast

  • 广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
  • 通常用于通知所有提供者更新缓存或日志等本地资源信息。

ForkingBroadcast 的区别:

  • Forking:同时并行调用多台服务器,有一台成功即为成功
  • Broadcast:逐个调用所有提供者(Provider),任一台报错则报错

附录:
集群配置模式:

<dubbo:service cluster="failsafe" />

或者:

<dubbo:reference cluster="failsafe" />

参考资料:
Dubbo集群容错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值