背景:
配置Ribbon的retry功能發現默認的配置,只能針對ReadTimeout生效,Connection refused這種的重試時間是有問題的。
原始配置如下:
ribbon.ReadTimeout= 2000
ribbon.ConnectTimeout= 2000
ribbon.MaxAutoRetries= 2
*** 實測重試時間只有3秒左右 ***
修改後的配置:
ribbon.ReadTimeout= 2000
ribbon.ConnectTimeout= 1500
ribbon.MaxAutoRetries= 2
實測4.7秒左右,符合1500*(2+1)的重試時間
結論
ConnectTimeout一定要設置小於ReadTimeout,等於的情況下也是無效的,會使用默認設置1秒。