Maison >développement back-end >Golang >Pourquoi mon client gRPC ne parvient-il pas à se connecter à un serveur Go dans un conteneur Docker ?
Connexion au serveur Go GRPC exécuté dans un conteneur Docker local
Problème :
Lors de la tentative pour connecter un client gRPC à un serveur Go gRPC exécuté dans un conteneur Docker, une erreur est rencontré :
transport: http2Client.notifyError got notified that the client transport was broken EOF. FATA[0000] rpc error: code = Internal desc = transport is closing
Solution :
Le problème survient lorsque le serveur gRPC est configuré pour écouter un nom d'hôte ou une adresse IP spécifique, tel que localhost. Dans Docker, l'adresse localhost fait uniquement référence aux connexions de bouclage provenant du conteneur lui-même.
Pour résoudre ce problème, le serveur doit être configuré pour écouter toutes les adresses IP disponibles du conteneur. Ceci peut être réalisé en changeant le point de terminaison d'écoute de :
endpoint := "localhost:51672"
à :
endpoint := ":51672"
En utilisant ":" comme adresse d'écoute, le serveur se liera à toutes les interfaces et IP adresses dans le conteneur, permettant de transmettre et d'établir des connexions externes.
Supplémentaires Informations :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!