【发布时间】:2023-03-31 19:56:02
【问题描述】:
问题:
我在 grpc 中接收消息时收到此错误:
grpc: received message larger than max (11509754 vs. 4194304)
我尝试了什么:
我提供了增加要发送的消息大小的选项,但它仍然给出了同样的错误,这意味着这个最大大小的设置不起作用:
maxSizeOption := grpc.MaxCallSendMsgSize(50 * 1024 * 1024)
if _, err := grpcClient.Foo(request, maxSizeOption); err != nil {
return err
}
评论:
我不明白为什么错误消息显示 4194304(=4MB)。 grpc.MaxCallSendMsgSize 是否有最大字节数可以设置?
补充一点,当我将 10MB 传递给 MaxCallSendMsgSize 时,我得到了错误:
trying to send message larger than max (11509754 vs. 10485760)
这是意料之中的。
附录:
当我将 10MB 传递给 MaxCallSendMsgSize 和 MaxCallRecvMsgSize 时,我得到了同样的错误:
size := 50* 1024 * 1024
maxSendSizeOption := grpc.MaxCallSendMsgSize(size)
maxRecvSizeOption := grpc.MaxCallRecvMsgSize(size)
if _, err := grpcClient.Foo(request,maxSendSizeOption,maxRecvSizeOption); err != nil {
return err
}
错误:
grpc: received message larger than max (11509754 vs. 4194304)
【问题讨论】:
-
第一个错误来自接收,但您正在设置最大发送大小。
-
我更新了我的帖子。当我将 10MB 传递给 MaxCallSendMsgSize 和 MaxCallRecvMsgSize 时,我得到了同样的错误。
-
您必须在客户端和服务器端设置这些选项。
-
感谢 JimB 和Зелёный!我也设置了这些选项服务器,它可以工作。