在Golang中更新grpc的接收和发送消息大小

时间:2019-01-10 22:32:11

标签: go grpc

我用Go语言编写了grpc服务器,并尝试使用以下代码将接收和发送消息的大小更新为20MB,而不是默认的4MB

var s *grpc.Server
s = grpc.NewServer(grpc.MaxRecvMsgSize(1024*1024*20), grpc.MaxSendMsgSize(1024*1024*20))

pb.RegisterProductServer(s,mysrv)

但是上述操作似乎无效,因为当我尝试从客户端received message larger than max (5807570 vs. 4194304)"致电时仍然出现错误 不确定什么能覆盖大小

1 个答案:

答案 0 :(得分:1)

我还没有机会进行测试,但是您是否尝试过从客户端存根添加相同的选项?可以将相同的选项作为拨号选项附加:

maxMsgSize := 1024*1024*20
conn, err := grpc.Dial(address, grpc.WithDefaultCallOptions(grpc.MaxRecvMsgSize(maxMsgSize), grpc.MaxSendMsgSize(maxMsgSize)))
if err != nil {
    // ...
}
defer conn.close()
client := pb.NewProductClient(conn)
// ...

我对您的用例一无所知,但是如果您的响应数据可以逐段传送,那么streaming APIs可能会有用。