gRPC客户端选项会覆盖服务器选项吗?

时间:2020-05-28 21:14:22

标签: python grpc

我在python API中实现了一个gRPC服务器,并在其上设置了以下几个选项:

options=[
      ('grpc.max_send_message_length', 500 * 1024 * 1024),
      ('grpc.max_receive_message_length', 500 * 1024 * 1024),
      ('GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA', 0),
      ('grpc.keepalive_time_ms', 300000),
]
server = grpc.server(futures.ThreadPoolExecutor(max_workers=4), options=options)

我们将默认邮件长度从默认的4 MB增加到500 MB。我的一位用户看到以下错误:

io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: gRPC message exceeds maximum size 4194304: 5224306

我要弄清楚的是,客户端设置是否可以覆盖我的服务器设置?

否则,我在消息长度上设置服务器选项的方式是否有问题?

1 个答案:

答案 0 :(得分:1)

客户端和服务器上的grpc.max_{send,receive}_message_length选项在两端分别本地执行,彼此独立。因此,例如,无论服务器设置如何,客户端都需要像您在此处那样设置grpc.max_receive_message_length的数字以接受服务器正在发送的大消息。