ribbon:
MaxAutoRetries: 1 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试
MaxAutoRetriesNextServer: 1 #切换实例的重试次数
OkToRetryOnAllOperations: true # 对所有的操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的
ConnectTimeout: 250 #请求连接的超时时间
ReadTimeout: 1000 #请求处理的超时时间
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 4500
#如果配置ribbon的重试,hystrix的超时时间要大于ribbon的超时时间,ribbon才会重试
#hystrix的超时时间
想问下这段配置,ribbon一共会重试几次,我测试了下,在只有一个服务实例情况下一共会调用4次,这个不是很理解。
MaxAutoRetries这个意思是同一实例的重试次数,MaxAutoRetriesNextServer意思是同一服务不同实例的重试次数。
但是如果只有一个服务实例,MaxAutoRetriesNextServer=1应该不生效才是,因为根本没有不同实例。不理解这里为什么会重试3次呢?
看网上的解答是:(根据上面的参数计算发起请求的次数:
1+1+(MaxAutoRetries + MaxAutoRetriesNextServer)
即重试3次 则一共产生4次调用 ,在第一台实例第一次不算重试。)
这个不是很理解