首页 文章

如果.proto文件保持不变,是否可以在不同的protobuf版本之间交换数据?

提问于
浏览
4

假设.proto文件永远不会改变,我们有一个基于TCP的客户端服务器系统,他们通过protobuf消息说出每个文件 . 在客户端和服务器都在protobuf版本2.4.1之前 . 现在服务器升级到2.5.0(首先使用2.5.0 protoc exe重新编译.java文件,而不是2.5.0运行时库的链接) . 但客户端仍然使用2.4.1版本 . 这个系统还能运作吗?

我认为这是客户端 - 服务器系统的常见问题 . 我相信它会起作用,但实际上我没有从谷歌提供的文件中找到任何关于它的话 .

1 回答

  • 2

    是的,这应该工作正常 . 如果你开始使用2.4.1中不存在的新功能,唯一会破坏它的是,但如果不改变.proto模式就不可能这样做,所以你确实可以安全地做到这一点 . 版本容忍是protobuf的一件大事;新功能(例如:压缩数组)总是选择加入并需要.proto更改 .

相关问题