我正在尝试找到更好的方法来处理grpc中4mb消息大小的限制。我需要一种方法来衡量在客户端接收到的grpc响应的大小。当响应超过4mb限制时,grpc会显示如下错误消息:
无法打招呼:rpc错误:代码= ResourceExhausted desc = grpc:收到的邮件大于最大值(74000087与4194304)
,其中“ 74000087”是响应的实际大小。如何计算?有没有办法获得这个价值?
我已经阅读了有关该主题的多篇文章,但找不到任何东西?有人可以帮忙吗?谢谢。
我的实现正在使用golang
答案 0 :(得分:3)
根据proto docs,
func Size(m Message) int
Size返回m的有线格式编码的大小(以字节为单位)。
此外,考虑将grpc.MaxCallRecvMsgSize
设置为grpc.CallOption
来管理限额可能对您有用。
答案 1 :(得分:0)
我想出了一种方法。解决方案是将gRPC响应编码为字节流,然后使用FC: no differences encountered
binary.Size()
}