Mengapa Saya Tidak Boleh Menyambung ke Perkhidmatan gRPC Saya di Docker: 'Recv failure: Connection reset by peer'?

Patricia Arquette
Lepaskan: 2024-11-16 04:36:03
asal
487 orang telah melayarinya

Why Can't I Connect to My gRPC Service in Docker:

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)
Salin selepas log masuk

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:

  • Jika anda menggunakan Kubernetes untuk mengurus bekas Docker anda , pastikan perkhidmatan yang mendedahkan port 8081 mempunyai NetworkPolicy yang betul dikonfigurasikan untuk membenarkan trafik masuk.
  • Jika anda masih menghadapi masalah selepas membuat perubahan di atas, pertimbangkan untuk menyemak tetapan firewall anda untuk memastikan port dibuka untuk sambungan masuk .

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan