Я тестирую Java-клиент gRPC на своем сервере через балансировку нагрузки NLB aws, но все трафик попадают на один и тот же узел. Я пытаюсь понять, как это будет работать над NLB.
Поскольку gRPC использует постоянное TCP-соединение, я предполагаю, что его клиент установит множественные tcp-соединения через NLB к своему серверу и будет произвольно обслуживать запросы к этим соединениям?
Я использую код из примера grpc.java
ManagedChannel channel = ManagedChannelBuilder.forAddress(endPoint, port).usePlaintext().build();
GreeterGrpc.GreeterBlockingStub blockingStub = GreeterGrpc.newBlockingStub(channel);
response = blockingStub.sayHello(request);
Я видел, что некоторые документы говорили, что ManagedChannel инкапсулирует сложность пула соединений, и я предполагаю, что он будет поддерживать соединения и решать, какое соединение использовать?
Поскольку заглушка является поточно-ориентированной, думаю, я мог бы повторно использовать одну заглушку для всех запросов?
Так что проблема в том, как я могу делать запросы сбалансированными по нагрузке на каждом узле сервера. Я запустил пример по NLB, но все запросы попали в один и тот же узел без удачи.