grpc中可以指定的最大字节数是多少.最大呼叫发送消息大小



问题:

我在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),
)

最新更新