使用spring cloud[Dalston.SR1]版本,如果加了如下重试参数还不生效:
# hystrix的超时时间必须大于ribbon的超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000
# 开启重试
spring.cloud.loadbalancer.retry.enabled=true
# 请求连接的超时时间
ribbon.connectTimeout=2000
# 请求处理的超时时间
ribbon.readTimeout=5000
# 对当前实例的重试次数
ribbon.maxAutoRetries=1
# 切换实例的重试次数
ribbon.maxAutoRetriesNextServer=3
# 对所有操作请求都进行重试
ribbon.okToRetryOnAllOperations=true
还需要再加入一个参数:
zuul.retryable=true
详见ZuulProperties里的定义:
/**
* Flag to indicate that this route should be retryable (if supported). Generally
* retry requires a service ID and ribbon.
*/
private Boolean retryable;