首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >grpc:接收到的消息大于最大值(8653851对4194304)

grpc:接收到的消息大于最大值(8653851对4194304)
EN

Stack Overflow用户
提问于 2019-03-26 16:49:06
回答 2查看 20.8K关注 0票数 17

问题

在grpc中接收消息时,我会收到此错误:

rpc error: code = ResourceExhausted desc = grpc: received message larger than max (8653851 vs. 4194304)

我尝试了什么:

我给出了增加要接收的消息的大小的选项,但是它仍然给出了相同的错误,这意味着最大大小的设置不起作用:

代码语言:javascript
运行
复制
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,但显然没有。

EN

回答 2

Stack Overflow用户

发布于 2019-10-26 13:21:30

请尝试更新客户端上的Grpc.MaxCallSendMsgSize(国际),以使客户端发送更大的消息。这对我有用。

票数 8
EN

Stack Overflow用户

发布于 2020-07-06 07:29:39

每个请求都可以传递调用选项。

例如,如果您的包名为queue,而您的方法被称为GetItems,那么在调用GetItems时将传入MaxCallRecvMsgSize选项。

Protobuf:

代码语言:javascript
运行
复制
package queue;

service Queue {
    rpc GetItems (Request) returns (Items) {
    }
}

去:

代码语言:javascript
运行
复制
conn, err := grpc.Dial(address, opts...)
c := queue.NewQueueClient(s.Conn)
maxSizeOption := grpc.MaxCallRecvMsgSize(32*10e6)
items, err := c.GetItems(ctx, &queue.Request{}, maxSizeOption)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55362342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档