我在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
我要弄清楚的是,客户端设置是否可以覆盖我的服务器设置?
否则,我在消息长度上设置服务器选项的方式是否有问题?
答案 0 :(得分:1)
客户端和服务器上的grpc.max_{send,receive}_message_length
选项在两端分别本地执行,彼此独立。因此,例如,无论服务器设置如何,客户端都需要像您在此处那样设置grpc.max_receive_message_length
的数字以接受服务器正在发送的大消息。