2

在我们的 Java 应用程序中,我们需要接受一个(大)Grpc 消息,提取一个字段,然后根据该字段的值将消息转发到另一台服务器。

我试图避免在传递消息之前完全反序列化消息的开销。

一种方法是将字段作为单独的查询或标头参数发送,但 Grpc 不支持它们。

另一种方法是仅从有效负载中提取感兴趣的字段,但 Protobuf 不支持部分或选择性反序列化。

我还能怎么做?

4

1 回答 1

0

您可以做到这一点的一种方法是在服务器端进行。当服务器即将发送响应时,它可以提取该字段并将其设置为发送的初始标头的一部分。您可以通过使用 aServerInterceptor从响应中提取所需字段并将其添加到Metadata.

除此之外,协议缓冲区目前要求您在访问内部字段之前解析消息。

于 2017-01-14T04:03:39.607 回答