Google protobuf:如果我从一边添加字段会破坏另一个吗?

时间:2017-08-24 06:43:32

标签: protocol-buffers

我有两项微服务。第一个服务使用google protobufgoogle docs)对消息进行编码,然后发送到第二个消息。第二个解码此消息并使用数据。

现在我需要在此消息对象中添加一个字段。如果我在一边做它只会打破另一面吗?

例如,如果我向json添加内容,则不会中断任何内容。它与google protobuf真的一样吗?

2 个答案:

答案 0 :(得分:1)

来自文档(请参阅此处:https://developers.google.com/protocol-buffers/docs/overview):

  

您可以在不破坏向后兼容性的情况下为邮件格式添加新字段;旧的二进制文件在解析时只是忽略新字段。因此,如果您的通信协议使用协议缓冲区作为其数据格式,则可以扩展协议,而无需担心破坏现有代码。

答案 1 :(得分:0)

从Goole Protobuf文档中引用了有关从here扩展Protobuf的内容:

you must not change the tag numbers of any existing fields.
you must not add or delete any required fields.
you may delete optional or repeated fields.
you may add new optional or repeated fields but you must use fresh tag numbers (i.e. tag numbers that were never used in this protocol buffer, not even by deleted fields).

在您的情况下,如果您所做的更改未违反上述任何规则,则不会破坏另一端。