Heim >Backend-Entwicklung >Golang >Warum kann ich in Docker keine Verbindung zu meinem gRPC-Dienst herstellen: „Recv-Fehler: Verbindung vom Peer zurückgesetzt'?
Docker-Port-Offenlegungsproblem: Behebung von „Recv-Fehler: Verbindung vom Peer zurückgesetzt“
In einer Docker-Umgebung ist ein Problem aufgetreten beim Versuch, einen gRPC-Dienst verfügbar zu machen, der in einem Container ausgeführt wird. Der Dienst, der Port 8081 überwacht, empfängt keine Verbindungen mit der Fehlermeldung „Recv-Fehler: Verbindung vom Peer zurückgesetzt.“
Ihre Docker Compose-Konfiguration ordnet Port 8081 korrekt dem internen Port des Containers zu, das Problem tritt jedoch auf von der Art und Weise, wie der gRPC-Server an seine Abhöradresse bindet. Standardmäßig lauscht der Server bei Verwendung von „http.ListenAndServe(„localhost:8081“, nil)“ nur auf der Loopback-Schnittstelle (127.0.0.1). Dies bedeutet, dass nur Verbindungen aus dem Container selbst akzeptiert werden können.
Um dieses Problem zu beheben, können Sie Ihre Go-Anwendung so ändern, dass sie alle Schnittstellen überwacht. Dies kann stattdessen durch die Verwendung des folgenden Codes erreicht werden:
http.ListenAndServe("0.0.0.0:8081", nil)
Durch die Angabe von „0.0.0.0“ stellt der Server eine Bindung an alle Netzwerkschnittstellen her, sodass er sowohl Loopback- als auch externe Verbindungen akzeptieren kann. Dadurch wird sichergestellt, dass Anfragen von außerhalb des Containers Ihren gRPC-Dienst erreichen können.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWarum kann ich in Docker keine Verbindung zu meinem gRPC-Dienst herstellen: „Recv-Fehler: Verbindung vom Peer zurückgesetzt'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!