问题:
我在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设置的最大字节数。最大呼叫发送消息大小?
此外,当我将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)
我也在服务器上设置了这些选项,并成功了。感谢JimB和Зел́ный!
// server side
size := 1024 * 1024 * 50
server := grpc.NewServer(
grpc.MaxSendMsgSize(size),
grpc.MaxRecvMsgSize(size),
)