私たちの通信は、メッセージ サイズのデフォルトのgrpc-java制限を超えています。
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 から参照してください。
Channel/Server ビルダーで 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
、デフォルトの制限を増やすことをサポートする別のチャネル実装を使用するようにコードを書き直すにはどうすればよいですか?