在客戶端使用Ribbon進行負載聚恆時,第一次調用服務會出現超時的情況,這個因爲第一次調用的耗時包含了RibbonClient的初始化創建時間,所以時間會比較長容易出現超時。
方案1:增加Ribbon的超時時間。
# 請求超時時間
ribbon.ReadTimout = 60000
# 連接超時時間
ribbon.ConnectTimeout = 60000
# 同一個實例最大重試次數,不含首次
ribbon.MaxAutoRetries = 0
# 其他實例最大重試次數,不含首次(如果只有一個實例,GET超時會對單個服務調用兩遍,有重複調用問題)
ribbon.MaxAutoRetriesNextServer = 1
# 是否所有操作都重試
ribbon.OkToRetryOnAllOperations: false
方案2:官方解決配置,飢餓模式,提前初始化客戶端連接。
ribbon.eager-load.enabled = true
ribbon.eager-load.clients = 服務名稱,多個用逗號分隔