gRPC 流中的错误类型
Error types in gRPC streaming
我有一个 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;
}
我怀疑创建单独的消息会更有效,这样错误消息就不必包含所有其他数据。我对制作和同步多条消息犹豫不决,因为我不想增加太多的复杂性。拆分消息可以获得什么效率?有没有一种规范的方式来做到这一点(特别是在围棋中)?
由于 protobuf 不发送空(默认)字段,将其拆分可能并没有真正提高效率。
所以,在你设置error="foo"的情况下
基本上只有 foo 被发送到网络上。
我有一个 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;
}
我怀疑创建单独的消息会更有效,这样错误消息就不必包含所有其他数据。我对制作和同步多条消息犹豫不决,因为我不想增加太多的复杂性。拆分消息可以获得什么效率?有没有一种规范的方式来做到这一点(特别是在围棋中)?
由于 protobuf 不发送空(默认)字段,将其拆分可能并没有真正提高效率。
所以,在你设置error="foo"的情况下 基本上只有 foo 被发送到网络上。