Наше общение превышает ограничение по умолчанию grpc-java на размер сообщения:java-grpc: Как увеличить ограничение размера сообщения в ManagedChannel?
Caused by: io.grpc.StatusRuntimeException: INTERNAL:
Frame size 4555602 exceeds maximum: 4194304.
If this is normal, increase the maxMessageSize
in the channel/server builder
Этот предел может быть увеличен, видно из https://github.com/grpc/grpc-java/issues/917:
Set MaxMessageSize() на строитель/сервер канала.
При попытке осуществить исправление в нашей базе кода, однако, не ясно, для меня, как это сделать, так как не все Channel
реализации есть метод maxMessageSize
.
В нашем коде используется ManagedChannel
. Код установки выглядит следующим образом:
ManagedChannel channel =
ManagedChannelBuilder.forAddress(rpcHost, grpcPort)
.usePlaintext(true).build();
CatalogGrpcServiceGrpc.CatalogGrpcServiceBlockingStub stub =
CatalogGrpcServiceGrpc.newBlockingStub(channel);
CatalogRetrieverGrpcServiceAdapter grpcServiceAdapter =
new CatalogRetrieverGrpcServiceAdapter(
stub, metricRegistry);
Может быть, я что-то не хватает, но я не могу видеть, как увеличить максимальный размер ManagedChannel
. Только у OkHttpChannelBuilder
есть (OkHttpChannelBuilder#maxMessageSize
).
Вопросы:
- Как я могу увеличить лимит сообщений с
ManagedChannel
? - Если это невозможно с
ManagedChannel
, как я могу переписать код для использования другой реализации канала, которая поддерживает увеличение лимита по умолчанию?