我用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)"
致电时仍然出现错误
不确定什么能覆盖大小
答案 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可能会有用。