spring cloud ribbon重试机制问题

lfli912 2017-07-27 05:16:06
spring cloud ribbon中配置MaxAutoRetriesNextServer,文档描述切换实例的重试次数
搭建一个eureka,两个服务提供方(A,B),一个ribbon使用负载均衡消费方(C)
启动所有服务后,断开服务A,这是ribbon C请求会报错,过段时间C再次请求会从B上获取数据
问题:
MaxAutoRetriesNextServer难道不是内部自动处理吗?也就是当A服务宕了,马上会自动内部处理重试B服务吗,而不是报错了再重试B?
...全文
2119 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tlzjff 2017-08-01
  • 打赏
  • 举报
回复
问题: MaxAutoRetriesNextServer难道不是内部自动处理吗?也就是当A服务宕了,马上会自动内部处理重试B服务吗,而不是报错了再重试B? 不会马上重试B服务,当访问到故障请求的时候,它会再尝试访问一次当前实例(次数由MaxAutoRetries这个配置决定),如果不行,就换一个实例进行访问,如果还是不行,再换一次实例访问(更换次数才是由MaxAutoRetriesNextServer配置),如果依然不行,再返回失败信息。如果你现在有A,B,C 3个服务,如果把A,B都停掉MaxAutoRetriesNextServer=2,则C可能没有被轮询查询的机会,如果你把MaxAutoRetriesNextServer=3,则没问题,我是这么理解的,还有当用eureka做注册中心,当服务死掉或者因为网络故障导致服务不可用时,eureka不会马上剔除掉这个服务,而是将它保留等待修复 详细可以查看这2个链接: http://blog.didispace.com/spring-cloud-ribbon-failed-retry/ http://blog.csdn.net/rickiyeat/article/details/70313983

25,988

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧