Dubbo笔记10——集群容错

集群容错指的是,当消费者调用提供者集群时发生异常的处理方案。

1.Dubbo内置6中容错策略

1.1 Failover 故障转移策略

当消费者调用提供者集群中的某个服务器失败时,其会自动尝试着调用
其它服务器。
该策略通常用于读操作,例如,消费者要通过提供者从 DB 中读取某数据。但
重试会带来服务延迟。

1.2 Failfast 快速失败策略

消费者端只发起一次调用,若失败则立即报错。
通常用于非幂等性的写操作,比如新增记录。
幂等:在请求参数相同的前提下,请求一次与请求 n 次,对系统产生的影响是相同的。

  • GET:幂等
  • POST:非幂等
  • PUT:幂等
  • DELETE:幂等
1.3 Failsafe 失败安全策略

当消费者调用提供者出现异常时,直接忽略本次消费操作。
该策略通常分布式 RPC 系统框架Dubbo用于执行相对不太重要的服务,例如,写入审计日志等操作。

1.4 Failback 失败自动恢复策略

消费者调用提供者失败后,Dubbo会记录下该失败请求,然后定时自动重新发送该请求。
该策略通常用于实时性要求不太高的服务,例如消息通知操作。

1.5 Forking 并行策略

消费者对于同一服务并行调用多个提供者服务器,只要一个成功即调用结束并返回结果。
通常用于实时性要求较高的读操作,但其会浪费较多服务器资源。

1.6 Broadcast 广播策略

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

2.配置集群容错策略

容错策略可以设置在消费者端,也可以设置在提供者端。若消费者与提供者均做了设置,则消费者端的优先级更高。

Dubbo 默认的容错策略是故障转移策略 Failover,即允许失败后重试。可以通过如下方
式来设置重试次数,注意设置的是重试次数,不含第一次正常调用。

提供者设置
<!--cluster指定容错策略,retries重试次数-->
<dubbo:service interface="com.abc.service.OtherService" ref="otherService" cluster="failover" retries="2" />

<dubbo:service interface="com.abc.service.OtherService" ref="otherService" cluster="failover">
        <dubbo:method name="doFirst" retries="2"/>
</dubbo:service>
消费者设置
<!--cluster指定容错策略,retries重试次数-->
<dubbo:reference interface="com.abc.service.OtherService" id="otherService" cluster="failover" retries="2" />

<dubbo:reference interface="com.abc.service.OtherService" id="otherService" cluster="failover">
        <dubbo:method name="doFirst" retries="2"/>
</dubbo:reference>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

占星安啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值