2016-09-28 37 views
1

当社の通信は、メッセージサイズのデフォルト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から参照してください。

セット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ではできない場合、どのようにデフォルトの制限を増やすことをサポートする別のチャネル実装を使用するようにコードを書き直すことができますか?

答えて

3

編集:今すぐ制限を直接ManagedChannelBuilderから増やすことができます。

今日、ManagedChannelBuilderの制限を増やすことはできません。使用するトランスポート実装を指定する必要があります。

だから、ほとんどのユーザーが明示的にNettyChannelBuilderを使用して、AndroidユーザーはOkHttpChannelBuilderを使用します。

ManagedChannel channel = 
    NettyChannelBuilder.forAddress(rpcHost, grpcPort) 
         .usePlaintext(true).build(); 

私はこれを追跡するためにGitHub issue 2307を作成しました。

関連する問題