Grpc未增加消息的最大大小:收到的消息大于最大值

2024-05-19 01:36:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用grpc发送一些相当大的消息(网络上机器学习模型的参数)。问题是,我在打grpc电话时遇到以下错误:

grpc: received message larger than max (261268499 vs. 4194304)

正如在其他帖子中所建议的那样,我试图增加频道和grpc服务器上的最大消息大小,但我一直收到相同的错误。你知道怎么让它工作吗

我的服务器代码:

maxMsgLength = 1024 * 1024 * 1024
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10),
                     options=[('grpc.max_message_length', maxMsgLength),
                              ('grpc.max_send_message_length', maxMsgLength),
                              ('grpc.max_receive_message_length', maxMsgLength)])

客户:

maxMsgLength = 1024 * 1024 * 1024
channel = grpc.insecure_channel(ip_port, 
                                options=[('grpc.max_message_length', maxMsgLength),
                                         ('grpc.max_send_message_length', maxMsgLength),
                                         ('grpc.max_receive_message_length', maxMsgLength)])

编辑:

这不是一个解决方案,但可能会让你对问题有更多的了解。出于某种原因,如果我将最大消息大小设置为1024*1024*1024,它最终会默认为4194304,正如错误消息所暗示的那样。我不太清楚为什么会这样。但无论如何,我尝试将最大消息大小减少到1024*1024*200,并且在错误消息(209715200)中显示了正确的最大消息大小。grpc没有正确设置最大消息大小似乎存在问题。但我不知道该怎么解决这个问题

当错误消息显示正确的最大值时,我可以使用的最大值为2^28。如果我将最大消息大小设置为2^29,则默认为4194304


Tags: 网络服务器机器send消息messagegrpcserver

热门问题