ローカル 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 中国語 Web サイトの他の関連記事を参照してください。