В моем кластере Kubernetes у меня есть один основной сервис, который подключается к нескольким так называемым рабочим сервисам через gRPC и балансировщик нагрузки. Однако при выполнении простого цикла for для отправки запросов работникам только один из них получает запросы.
Я спрашиваю конкретно, потому что, насколько я понимаю, канал gRPC может содержать несколько подключений (подканалов), но наш кластер Kubernetes распределяет запросы по другим модулям в соответствии с каналами, а не просто соединениями (подканалами) внутри них, т. е. балансировка L4, передача нагрузки gRPC Балансировка.
Таким образом, нужно ли мне настраивать пул каналов gRPC [2] вручную, как описано в недавней статье здесь: Реализация пула соединений в Java?
Или я могу просто переключиться на другую библиотеку, как описано в этой статье. Выбор правильной библиотеки grpc для Spring Boot?
Заранее спасибо за любые советы.
Изменить
Согласно этому ответу, что-то вроде этого может сработать. Хотя у меня тот же вопрос: Как настроить размер пула?
Код: Выделить всё
@Configuration
public class GrpcClientFactory {
@Bean
FooGrpc.FooBlockingStub fooBlockingStub() {
var channel =
ManagedChannelBuilder.forAddress("", 9090)
.executor(Executors.newCachedThreadPool())
.usePlaintext()
.build();
return FooGrpc.newBlockingStub(channel);
}
}
[2] gRPC управляет производительностью