2017-10-04 784 views
0

我們希望配置我們的gRPC客戶端,在連接丟失後很快重新連接。 (我相信default behavior將在20秒後嘗試重新連接,在兩次嘗試之間退回到120秒。)在審查available settings之後,我們嘗試將grpc.initial_reconnect_backoff_msgrpc.min_reconnect_backoff_ms設置爲200.雖然這會在連接丟失時快速重新連接,我們有時會看到來自測試的呼叫以GRPC::Internal: 13:Completed without a response失敗。從位於客戶端和服務器之間的tcp反向代理查看日誌記錄,我發現連接持續時間超過200毫秒,然後第二個連接持續時間更長。所以它看起來像重連時間有效地作爲連接嘗試超時。可以獨立於重新連接退避設置來設置gRPC客戶端連接超時嗎?

是否可以配置gRPC客戶端,以便在連接丟失後很快開始嘗試重新連接,但允許創建該連接的時間超過重新連接時間?

如果重要,這是一個Ruby客戶端。

回答

1

初始回退爲假設1 second

您遇到了a bug是否最小連接超時作爲超時和退避(因此忽略1s初始退避)。因此,最初的問題和失敗的解決方法都是由同一個錯誤引起的。

(該錯誤已注意到在一個月前,但問題並沒有因與第二個bug提交到查詢股價。在這裏你的問題讓我發現丟失的問題。)

+0

因此,答案是「不正確的現在,但一旦[此錯誤](https://github.com/grpc/grpc/issues/12867)已修復。「謝謝。 –

+0

正在解決此問題的工作:https://github.com/grpc/grpc/pull/13121 –