3

私たちの通信は、メッセージ サイズのデフォルトの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、デフォルトの制限を増やすことをサポートする別のチャネル実装を使用するようにコードを書き直すにはどうすればよいですか?
4

1 に答える 1