首页 > 自动化运维 > > 9,Dubbo的超时容错机制
假设A服务调用B服务,而B服务出现了问题,响应迟缓,这个时候如果没有超时机制,那么A服务会消耗大量的线程去调用B服务,最终可能导致A服务资源耗尽,从而服务A宕机,如果还有其他服务C调用了A服务,则会出现连锁反应,出现服务雪崩的效应。
是指当A服务调用B服务超时后,Dubbo默认会执行重试的机制,尝试去调用集群的其他机器,默认是重试两次,即加上第一次调用,总共是三次。
超时机制+容错机制的配置:
服务消费方配置
@Reference(timeout = 2000)
private IProductApi productApi;
//配置文件的方式
dubbo
consumer:
timeout: 3000
retries: 6 //重试次数服务提供方配置
@Service(timeout = 2000)
//配置文件的方式
dubbo
provider:
timeout: 1000集群容错的模式
1,Failover Cluster 默认的模式,失败自动切换,当出现失败,重试其他服务器。
通常用于读操作,但重试会带来更长延迟。可设置retries属性,规定重试的次数。
2,Failfast Cluster 快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,避免造成重复的数据。
<dubbo:service cluster="failfast" />
<dubbo:reference cluster="failfast" />来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3137906/ ,如需转载,请注明出处,否则将追究法律责任。