0
私のプロジェクトでは、Dockerコンテナ内の2つのマイクロサービス間でgrpc通信があります。クライアントがローカルで、サーバーがコンテナーにある場合、クライアントはサーバーに要求を出し、応答を受け取ります。クライアントを1つのコンテナに入れ、別のコンテナに入れると、クライアントは要求を行い、応答もステータスも受信しません。ドッカーコンテナ内のgrpcクライアントは応答もステータスも受け取りません
これは私のクライアントです:
class RoomClient:
def __init__(self, host='', port=50051):
conn_str = '{}:{}'.format(host, port)
self.channel = grpc.insecure_channel(conn_str)
self.stub = booking_pb2_grpc.BookingStub(self.channel)
# Login call this method
def rpc_run_get_all(self, request):
number = booking_pb2.AddRequest(value=request)
response = self.stub.sendAll(number)
return response
私のサーバー:
class BookingServicer(booking_pb2_grpc.BookingServicer):
def sendAll(self, request, context):
response = booking_pb2.AddReply()
#response.value = send_all(request.value)
print ("chegou")
response.value = str(json_util.dumps({'response': "hello"}))
return response
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
booking_pb2_grpc.add_BookingServicer_to_server(BookingServicer(), server)
print('Starting server. Listening on port 50051.')
server.add_insecure_port('[::]:50051')
server.start()
try:
while True:
time.sleep(86400)
except KeyboardInterrupt:
server.stop(0)
if __name__ == '__main__':
serve()
リピートしてくれてありがとう!私はすでに解決しています。私はドッカーネットワークを使い、このネットワーク上で2つのコンテナを走らせました。ホストアドレスには、サーバーであったコンテナの名前を入れます。 –