Dubbo容错方式

2019-01-04  本文已影响0人  你值得拥有更好的12138

一.容错方式

服务调用总会出现,服务不可用的问题,需要短时间内去重试,还是要直接中断在不通的场景下选择。
1.非幂等性操作
每一次操作都对数据产生不同的影响。比支付功能,不允许重复提交。

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

2.不重要操作,一次失败保留日志
失败就失败了,不重要,比如日志服务,忽略就好。

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

3.需要实时性很高的操作
比如刷票,需要并发发送请求,谁先回来用谁的。

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

4.通知类消息
不着急,但是要保证发送到,所以保存日志,然后定时发送。

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

5.广播类的通知
配置更新,逐一通知每台机器

Broadcast Cluster

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

6.普通读操作(重试)

### Failover Cluster

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

二、配置方式

1.Failover

<dubbo:service retries="2" />

2.Failsafe

<dubbo:service cluster="failsafe" />

其他类似

上一篇下一篇

猜你喜欢

热点阅读