【问题标题】:Difference of proto messages with the relative positions of its attributesproto 消息及其属性相对位置的差异
【发布时间】:2020-08-17 05:11:13
【问题描述】:

protobuf 消息中的属性是第一个成员还是第二个成员有什么区别?

我拥有的请求原型消息有 2 个字段。我被要求交换属性的位置

message SomeRequest {
  SomeMessage1 message1 = 1;
  SomeMessage2 message2 = 2;
}

改为:

message SomeRequest {
  SomeMessage2 message2 = 1;
  SomeMessage1 message1 = 2;
}

这种建议的可能原因是什么? message2 预计将更主要地被搜索? 另外我可以再多几个场景来更好地理解它吗?

提前致谢!!

【问题讨论】:

    标签: protocol-buffers grpc grpc-java


    【解决方案1】:

    最终,无论是谁要求进行此更改 - 也许会询问他们的原因?

    场景,较低的字段编号更便宜(空间方面),因此应该首选,但字段 1 和 2 在空间方面是相同的,所以这不是问题在这里。

    如果这是为了与预先存在的类似类型进行字节兼容,这可能是一个合理的要求。

    【讨论】:

    • 字节兼容性?没看懂,能不能详细点
    • 不,这不是为了字节兼容性。此消息是新创建的。
    • @discoverAnkit : 消息与他之前的消息格式的兼容性。
    • @Nilotpal 那么真的没有任何“明显”的原因;你将不得不问他们“为什么?”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多