Protocol buffers 原始信息与其属性相对位置的差异

Protocol buffers 原始信息与其属性相对位置的差异,protocol-buffers,grpc,grpc-java,Protocol Buffers,Grpc,Grpc Java,如果protobuf消息中的属性是第一个成员或第二个成员,那么有什么区别 我的请求原型消息有两个字段。我被要求交换属性的位置 message SomeRequest { SomeMessage1 message1 = 1; SomeMessage2 message2 = 2; } 改为: message SomeRequest { SomeMessage2 message2 = 1; SomeMessage1 message1 = 2; } 提出这种建议的可能原因是什么?me

如果protobuf消息中的属性是第一个成员或第二个成员,那么有什么区别

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

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

message SomeRequest {
  SomeMessage2 message2 = 1;
  SomeMessage1 message1 = 2;
}
提出这种建议的可能原因是什么?message2的搜索量预计会更大? 另外,我可以有更多的场景来更好地理解它吗


提前谢谢

归根结底,无论是谁要求这一改变——也许会问他们原因

在某些情况下,较低的字段号比较便宜(空间方面),因此应该优先考虑,但字段1和字段2在空间方面是相同的,因此这里不需要考虑这一点


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

字节兼容性?我不明白,你能解释一下吗?这不是为了字节兼容性。此消息是新创建的。@discoverAnkit:mesage与他所指的先前消息格式的兼容性。@Nilotpal那么真的没有任何“明显”的原因;你得问他们“为什么?”