NUMBEROF_RETRIES_NEXTSERVER_EXCEEDED、NUMBEROF_RETRIES_EXCEEDED

NUMBEROF_RETRIES_NEXTSERVER_EXCEEDED:超过重试服务器数量
NUMBEROF_RETRIES_EXCEEDED:超过重试数量

先说一下场景:eureka注册中心一直开着不重启,频繁迭代子服务,运用重试机制,参数不管怎么配置,久了之后就会出现这个错误。

大家都知道,用eureka做注册中心,当服务死掉或者因为网络故障导致服务不可用时,eureka不会马上剔除掉这个服务,而是将它保留等待修复,这样就会带来一些问题,当服务本身在被剔除掉的期间本身发生变化,再重启之后就会引起一些问题。所以,个人认为,eureka的这套机制虽然保护了服务,但是健康检查其实很脆弱,推荐还是使用consul。

原因:是ribbon的MaxAutoRetriesNextServer数量超过了我们总的服务器数量-1。

我的配置信息:

# 在同一个服务器上的最大重试数 (不包括第一次重试)  
ribbon.MaxAutoRetries=1 

# 最大重试服务器数量(不包括第一台服务器)  
ribbon.MaxAutoRetriesNextServer=2  

我只起了一台服务器,所以出错了。另外,如果服务注册中心用的是Eureka,此时最好把它重启一下。

你可能感兴趣的:(Spring,Cloud,Spring,Cloud)