protocol-buffers - 原始消息的差异及其属性的相对位置

标签 protocol-buffers grpc grpc-java

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

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

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

更改为:

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

提出这样的建议的可能原因是什么? message2 预计会被更多地搜索? 另外我可以再提供一些场景来更好地理解它吗?

提前致谢!!

最佳答案

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

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

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

关于protocol-buffers - 原始消息的差异及其属性的相对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63444882/

相关文章:

python - 如何知道 GRPC 服务器是否可用

python - 如何从 golang 中的单个 protobuf 二进制文件中解码多个指标(流多个)

parsing - 如何将具有可变结构的消息扁平化为 protobuf?

go - 错误 "protoc-gen-go: program not found or is not executable"

https - Bazel 远程缓存无法使用证书/TLS

c# - 为现有 gRPC 服务器生成客户端

java - 使用 Protocol Buffers 和内部数据模型

grpc-java:正确处理客户端上的服务流调用重试

java - 即使客户端断开连接,Grpc 服务器也会继续处理数据

java - 如何处理 protobuf3 消息中的可空枚举类型字段?