问题:
在grpc中接收消息时出现此错误:
rpc error: code = ResourceExhausted desc = grpc: received message larger than max (8653851 vs. 4194304)
我尝试过的事情:
我提供了增加接收消息的大小的选项,但是它仍然给出相同的错误,这意味着此最大大小设置不起作用:
size := 1024 * 1024 * 12
opts = append(opts, grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(size)))
conn, err := grpc.Dial(address, opts...)
评论:
错误消息中显示了默认限制为1024 * 1024 * 4 = 4194304
。我原本希望此限制增加到1024 * 1024 * 12 = 12582912
,但显然没有。
答案 0 :(得分:0)
请尝试在客户端上更新grpc.MaxCallSendMsgSize(s int),以使客户端发送更大的消息。 这对我有用。
答案 1 :(得分:0)
可以随每个请求传递呼叫选项。
例如,如果您的程序包名为IOmniParallelTask
,而方法名为queue
,则在调用GetItems
时将传递MaxCallRecvMsgSize
选项。
Protobuf:
GetItems
开始:
package queue;
service Queue {
rpc GetItems (Request) returns (Items) {
}
}