gpt4 book ai didi

java-grpc : How to increase the message size limit in a ManagedChannel?

转载 作者:行者123 更新时间:2023-11-30 06:51:55 25 4
gpt4 key购买 nike

我们的沟通超出默认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 :

Set maxMessageSize() on the Channel/Server builder.

但是,当尝试在我们的代码库中实现修复时,我并不清楚该怎么做,因为并非所有 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 无法实现,我该如何重写代码以使用另一个支持增加默认限制的 channel 实现?

最佳答案

编辑:您现在可以直接从 ManagedChannelBuilder 增加限制。

今天,您不能增加 ManagedChannelBuilder 的限制;您必须指定要使用的传输实现。

因此大多数用户会明确使用NettyChannelBuilder,Android 用户会使用OkHttpChannelBuilder:

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

我创建了 GitHub issue 2307跟踪这个。

关于java-grpc : How to increase the message size limit in a ManagedChannel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com