連接到在本地Docker 容器中運行的Go GRPC 服務器
問題:
嘗試時將gRPC 用戶端連接到在Docker 容器中執行的Go gRPC伺服器時,會發生錯誤:遇到:
transport: http2Client.notifyError got notified that the client transport was broken EOF. FATA[0000] rpc error: code = Internal desc = transport is closing
解決方案:
當gRPC 伺服器設定為偵聽特定主機名稱或IP 位址(例如localhost )時,會出現此問題。在 Docker 中,本機主機位址僅指源自容器本身內部的環回連線。
要解決此問題,應將伺服器配置為偵聽容器的所有可用 IP 位址。這可以透過將監聽端點從:
endpoint := "localhost:51672"
更改為:
endpoint := ":51672"
透過使用「:」作為監聽位址,伺服器將綁定到所有介面和IP容器內的位址,允許轉送和建立外部連線。
其他資訊:
以上是為什麼我的gRPC客戶端無法連接到Docker容器中的Go伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!