Rumah >pembangunan bahagian belakang >Golang >Mengapa Klien gRPC Saya Gagal Menyambung ke Pelayan Go dalam Bekas Docker?
Menyambung ke Pelayan Go GRPC Berjalan dalam Bekas Docker Tempatan
Masalah:
Apabila mencuba untuk menyambungkan klien gRPC ke pelayan Go gRPC yang berjalan dalam bekas Docker, ralat ialah dihadapi:
transport: http2Client.notifyError got notified that the client transport was broken EOF. FATA[0000] rpc error: code = Internal desc = transport is closing
Penyelesaian:
Isu timbul apabila pelayan gRPC dikonfigurasikan untuk mendengar pada nama hos atau alamat IP tertentu, seperti localhost. Dalam Docker, alamat localhost hanya merujuk kepada sambungan gelung balik yang berasal dari dalam bekas itu sendiri.
Untuk menyelesaikan isu ini, pelayan harus dikonfigurasikan untuk mendengar pada semua alamat IP bekas yang tersedia. Ini boleh dicapai dengan menukar titik akhir dengar daripada:
endpoint := "localhost:51672"
kepada:
endpoint := ":51672"
Dengan menggunakan ":" sebagai alamat dengar, pelayan akan mengikat semua antara muka dan IP alamat dalam bekas, membenarkan sambungan luaran dimajukan dan diwujudkan.
Tambahan Maklumat:
Atas ialah kandungan terperinci Mengapa Klien gRPC Saya Gagal Menyambung ke Pelayan Go dalam Bekas Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!