首页 > 解决方案 > Java 如何在 Spring Boot 中增加 grpc 服务器的消息大小

问题描述

我有一个 Spring Boot 微服务,它使用LogNet/grpc-spring-boot-starter通过 GRPC 进行侦听

默认情况下,GRPC 有效负载最大大小为 4MB。在客户端,设置响应负载大小很容易,但我想增加服务器端的请求大小。

在客户端,

ManagedChannel channel = 
   NettyChannelBuilder.forAddress(...)
                        .maxInboundMessageSize(NEW_MAX_MESSAGE_SIZE).build();

通过服务器代码:

@GRpcService
public class FooService extends FooServiceImplBase {

  @Override
  public void foo(GetRequest request, StreamObserver<GetResponse> responseObserver) {
    ...
  }
}

标签: javaspringspring-bootgrpcgrpc-java

解决方案


像这样定义一个 ServerBuilderConfigurer:

@Component
public class FooServerBuilderConfigurer extends GRpcServerBuilderConfigurer {
  public static final int NEW_MAX_MESSAGE_SIZE = 100 * 1024 * 1024; // 100MB

  @Override
  public void configure(ServerBuilder<?> serverBuilder) {
    serverBuilder.maxInboundMessageSize(NEW_MAX_MESSAGE_SIZE);
  }
}

推荐阅读