Isu Pendedahan Pelabuhan Docker: Menyelesaikan "Kegagalan Recv: Tetapan semula sambungan oleh rakan sebaya"
Dalam persekitaran Docker, anda telah menghadapi masalah semasa cuba mendedahkan perkhidmatan gRPC yang berjalan dalam bekas. Perkhidmatan, mendengar pada port 8081, gagal menerima sambungan dengan ralat "Recv failure: Sambungan semula ditetapkan oleh rakan setara."
Konfigurasi Docker Compose anda dengan betul memetakan port 8081 ke port dalaman kontena, tetapi isu itu timbul disebabkan dengan cara pelayan gRPC mengikat ke alamat pendengarannya. Secara lalai, apabila menggunakan "http.ListenAndServe("localhost:8081", nol)," pelayan mendengar hanya pada antara muka gelung balik (127.0.0.1). Ini bermakna ia hanya boleh menerima sambungan dari dalam bekas itu sendiri.
Untuk menyelesaikan isu ini, anda boleh mengubah suai aplikasi Go anda untuk mendengar pada semua antara muka. Ini boleh dicapai dengan menggunakan kod berikut sebaliknya:
http.ListenAndServe("0.0.0.0:8081", nil)
Dengan menyatakan "0.0.0.0," pelayan akan terikat pada semua antara muka rangkaian, membenarkannya menerima kedua-dua sambungan gelung balik dan luaran. Ini akan memastikan bahawa permintaan dari luar bekas boleh mencapai perkhidmatan gRPC anda.
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Perkhidmatan gRPC Saya di Docker: 'Recv failure: Connection reset by peer'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!