我们在使用Ribbon或者Feigin的时候,是可以开启超时重试功能的,网上很多资料都会讲到,这里就不啰嗦了。
那么我们要关闭这个功能呢?
开启的配置如下(另外ribbon超时时间和断路器超时时间也需要配置)
spring.cloud.loadbalancer.retry.enabled=true
ribbon.ReadTimeout=90000
ribbon.ConnectTimeout=10000
#Hystrix超时时间(默认1000ms,单位:ms)
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=95000
# 同一实例最大重试次数,不包括首次调用
ribbon.MaxAutoRetries=1
# 重试其他实例的最大重试次数,不包括首次所选的server
ribbon.MaxAutoRetriesNextServer= 2
# 是否所有操作都进行重试
ribbon.OkToRetryOnAllOperations=true
当我们需要关闭重试功能的时候,是不是spring.cloud.loadbalancer.retry.enabled=false就可以了呢,并不是。
需要把ribbon.OkToRetryOnAllOperations=false才行。
这里有人详细分析过,传送门