谷歌的protobuf:如果我从一边添加字段,会破坏另一边的字段吗?

10
我有两个微服务。 第一个服务使用google protobuf (google 文档) 对消息进行编码并发送到第二个服务。 第二个服务解码此消息并使用数据。
现在我需要向此消息对象添加字段。 如果仅在一侧进行更改,是否会影响到另一侧?
例如,如果我在json 中添加内容,则不会使任何内容出错。 那么这是否适用于google protobuf
2个回答

16
引用自Google Protobuf文档有关扩展Protobuf的部分,链接见此处
  • 不能更改任何现有字段的标签号。
  • 不能添加或删除任何必需字段。
  • 可以删除可选或重复的字段。
  • 可以添加新的可选或重复的字段,但必须使用新的标签号(即,这个协议缓冲区中从未使用过的标签号,即使是已删除的字段也不行)。
在您的情况下,如果您对一侧的更改不违反上述规则,则不会破坏另一侧。

9
从文档中可以了解到(请参见此处:https://developers.google.com/protocol-buffers/docs/overview):
您可以向消息格式中添加新字段,而不会破坏向后兼容性;旧的二进制文件在解析时只是忽略新字段。因此,如果您有一个使用协议缓冲作为其数据格式的通信协议,您可以扩展该协议,而无需担心破坏现有代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接