【问题标题】:Batching technique using Protobufs使用 Protobufs 的批处理技术
【发布时间】:2019-10-04 11:56:07
【问题描述】:

在通过 HTTP 发送时,是否有一种有效的技术来批处理不同的 Protobuf 事件?

目标是在一个请求中包含多类型 Protobuf 消息的列表。我的一个想法是将消息分隔成小数组并指定它们的类型以便能够在服务器上反序列化它们。

【问题讨论】:

    标签: http serialization protocol-buffers protobuf-net protobuf-java


    【解决方案1】:

    你可以使用一些Any消息类型结合repeated,如下:

    message Any {
        string type_url = 1;
        bytes value = 2;
    }
    
    message Envelope {
        repeated Any events = 1;
    }
    

    然后,在您的代码中:

    • 序列化时,必须根据value中序列化的消息类型设置type_url
    • 反序列化时,必须阅读type_url才能知道value中包含的类型,并进行相应的反序列化

    上面的例子复制了google/protobuf/any,记录在这里: https://developers.google.com/protocol-buffers/docs/proto3#any

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2011-08-16
      • 2018-11-11
      相关资源
      最近更新 更多