로컬 Docker 컨테이너에서 실행되는 Go GRPC 서버에 연결
문제:
시도할 때 Docker 컨테이너 내에서 실행되는 Go gRPC 서버에 gRPC 클라이언트를 연결하려면 오류가 발생합니다. 발생:
transport: http2Client.notifyError got notified that the client transport was broken EOF. FATA[0000] rpc error: code = Internal desc = transport is closing
해결 방법:
gRPC 서버가 localhost와 같은 특정 호스트 이름 또는 IP 주소를 수신하도록 구성되면 문제가 발생합니다. Docker 내에서 로컬 호스트 주소는 컨테이너 자체 내에서 발생하는 루프백 연결만 참조합니다.
이 문제를 해결하려면 컨테이너의 사용 가능한 모든 IP 주소를 수신하도록 서버를 구성해야 합니다. 이는 수신 엔드포인트를
endpoint := "localhost:51672"
에서 다음으로 변경하여 달성할 수 있습니다.
endpoint := ":51672"
":"를 수신 주소로 사용하면 서버가 모든 인터페이스와 IP에 바인딩됩니다. 컨테이너 내의 주소를 사용하여 외부 연결을 전달하고 설정할 수 있습니다.
추가 정보:
위 내용은 내 gRPC 클라이언트가 Docker 컨테이너의 Go 서버에 연결하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!