gRPC流中的错误类型

时间:2017-05-21 21:38:10

标签: go protocol-buffers grpc

我有一个gRPC端点,可以来回传输查询和结果,并且服务器端经常会出现我想要发回的错误。我目前的错误处理方法是在回复中包含一条错误消息。

service MyService {
        rpc Query (stream QueryRequest) returns (stream QueryReply) {}
}

message QueryReply {
        string id = 1;
        repeated string kind = 2;
        message DataList {
                repeated string data = 1;
        }
        map<string, DataList> data = 3;
        string error = 4;
}

我怀疑创建单独的消息会更有效,因此错误消息不必包含所有其他数据。我对制作和同步多条消息犹豫不决,因为我不想添加太多复杂性。分割信息可以获得什么效率?是否有规范的方式(特别是)?

1 个答案:

答案 0 :(得分:0)

由于protobuf不会发送空(默认)字段,因此分割它的效率可能不高。

所以,在你设置错误的情况下=&#34; foo&#34; 基本上只有foo是通过电线发送的。