Serialization 使用googleprotobuffer处理delta消息
我正在考虑使用Google Protobuffers进行delta消息传递。这意味着我只想发送域对象的更改值 但这暴露了协议在这方面的问题。我可以很容易地忽略那些没有改变的属性,这将为我们提供一个简洁的消息 但是将值从Serialization 使用googleprotobuffer处理delta消息,serialization,null,protocol-buffers,delta,Serialization,Null,Protocol Buffers,Delta,我正在考虑使用Google Protobuffers进行delta消息传递。这意味着我只想发送域对象的更改值 但这暴露了协议在这方面的问题。我可以很容易地忽略那些没有改变的属性,这将为我们提供一个简洁的消息 但是将值从\u某物更改为null的属性又如何呢?在协议缓冲区中无法区分这两种情况 其他人在这里做了什么?我正在研究几种不同的解决方案: 向所有对象添加元属性,即int数组。如果任何属性应更改为null,请在此数组中包含字段号。如果属性没有改变,那么meta属性只是被省略,不会占用消息中的带宽
\u某物
更改为null
的属性又如何呢?在协议缓冲区中无法区分这两种情况
其他人在这里做了什么?我正在研究几种不同的解决方案:
BR JayProtobuf 3不太适合这种情况。但在protobuf2中,可以有一个字段存在,但其值为null
因为protobuf 2不会很快消失,我建议将其用于此类目的。我只是想发布一篇后续文章,解释一下我做了什么 正如@jpa正确指出的,protobuffers不是为增量压缩而设计的 所以我解决这个问题的方法是使用一些元属性并依赖于这个约定。我与使用数据的人有着密切的合作关系,因此可以就约定达成一致