如何测量gRPC响应的大小

时间:2019-12-09 09:27:10

标签: go grpc rpc grpc-python grpc-go

我正在尝试找到更好的方法来处理grpc中4mb消息大小的限制。我需要一种方法来衡量在客户端接收到的grpc响应的大小。当响应超过4mb限制时,grpc会显示如下错误消息:

  

无法打招呼:rpc错误:代码= ResourceExhausted desc = grpc:收到的邮件大于最大值(74000087与4194304)

,其中“ 74000087”是响应的实际大小。如何计算?有没有办法获得这个价值?

我已经阅读了有关该主题的多篇文章,但找不到任何东西?有人可以帮忙吗?谢谢。

我的实现正在使用golang

2 个答案:

答案 0 :(得分:3)

计算邮件大小

根据proto docs

func Size(m Message) int

Size返回m的有线格式编码的大小(以字节为单位)。

gRPC消息大小限制

此外,考虑将grpc.MaxCallRecvMsgSize设置为grpc.CallOption来管理限额可能对您有用。

答案 1 :(得分:0)

我想出了一种方法。解决方案是将gRPC响应编码为字节流,然后使用FC: no differences encountered

计算大小
binary.Size()

}