protocol-buffers - Protocol Buffer 如何处理版本控制?

标签 protocol-buffers protobuf-net

Protocol Buffer 如何处理类型版本控制?

例如,当我需要随时间更改类型定义时?就像添加和删除字段一样。

最佳答案

Google 设计的 protobuf 对版本控制非常宽容:

  • 意外数据要么存储为“扩展”(使其往返安全),要么静默删除,具体取决于实现
  • 新字段一般都加为“可选”,表示旧数据可以成功加载

  • 然而:
  • 不要对字段重新编号 - 这会破坏现有数据
  • 您通常不应更改任何给定字段的存储方式(即从固定的 32 位 int 到“varint”)

  • 不过,一般来说 - 它会起作用,您无需担心版本控制。

    关于protocol-buffers - Protocol Buffer 如何处理版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8519381/

    相关文章:

    c# - Protobuf-net 在序列化期间跳过数据

    c# - 动态对象序列化

    tcp - 为什么 Hadoop 不使用 MPI 实现?

    protocol-buffers - 确定 Protocol Buffer 消息类型的最佳实践

    c++ - 在 C++ 中通过套接字发送 protobuf 的序列化是什么?

    c# - 从其他项目protobuf文件导入消息类型

    c++ - 使用 -std=c++98 或 -std=c++03 构建什么版本的 Google protobuf?

    c# - 如何将 .NET 框架中的 gRPC 客户端与安全的 .NET Core 服务器连接?

    c# - 'NotSupportedException : Type cannot be represented as a default value' after updating protobuf-net

    c# - 是否有很好的教程或示例显示 protobuf-net 和 zeromq 的组合?