ITPub博客

首页 > 自动化运维 > > 9,Dubbo的超时容错机制

9,Dubbo的超时容错机制

作者:浪花小雨滴 时间:2020-05-25 15:34:44 0 删除 编辑

1 超时机制是一种保护机制。

假设A服务调用B服务,而B服务出现了问题,响应迟缓,这个时候如果没有超时机制,那么A服务会消耗大量的线程去调用B服务,最终可能导致A服务资源耗尽,从而服务A宕机,如果还有其他服务C调用了A服务,则会出现连锁反应,出现服务雪崩的效应。

2 集群容错机制

是指当A服务调用B服务超时后,Dubbo默认会执行重试的机制,尝试去调用集群的其他机器,默认是重试两次,即加上第一次调用,总共是三次。

3 配置

超时机制+容错机制的配置:

  1. 支持以服务为单位和以方法为单位进行配置,方法的优先级高于服务
  2. 也支持在服务提供方和服务消费方配置,服务消费方优先级高于服务提供方

服务消费方配置

@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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39972