猿问

在 golang 中更新 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)" 不确定什么是覆盖大小


慕标琳琳
浏览 320回答 1
1回答

呼唤远方

我还没有机会对此进行测试,但您是否尝试过从客户端存根添加相同的选项?可以附加相同的选项作为拨号选项:maxMsgSize := 1024*1024*20conn, err := grpc.Dial(address, grpc.WithDefaultCallOptions(grpc.MaxRecvMsgSize(maxMsgSize), grpc.MaxSendMsgSize(maxMsgSize)))if err != nil {    // ...}defer conn.close()client := pb.NewProductClient(conn)// ...我对您的用例一无所知,但如果您的响应数据可以分段传送,那么流式 API可能会有用。
随时随地看视频慕课网APP

相关分类

Go
我要回答