Я тестирую java-клиент gRPC на своем сервере через балансировку нагрузки AWS NLB, но все трафик попадает в один и тот же узел. Я пытаюсь понять, как это будет работать с 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, но все запросы попали в один и тот же узел безуспешно.