gpt4 book ai didi

java - 为什么在java中使用 Protocol Buffer

转载 作者:行者123 更新时间:2023-12-01 07:04:11 25 4
gpt4 key购买 nike

最近读了HBase的代码,发现HBase的代码中客户端使用protobuf与服务器通信。

Java 有“可序列化”。为什么不使用它?

最佳答案

  • 效率:在传输相同数量的数据时, Protocol Buffer 通常比 Java 二进制序列化效率更高
  • 可移植性:据我所知,Java 二进制序列化并未在 Java 之外广泛实现(这并不奇怪)
  • 面对不相关的更改时的鲁棒性:除非您手动指定可序列化的 UUID,否则您最终可能会在不接触 Java 中的数据的情况下进行重大更改。恶心。
  • 向后和向前兼容性:旧代码可以读取新代码写入的数据。新代码可以读取旧代码写入的数据。 (您仍然需要小心,proto2 和 proto3 之间的更改的含义略有不同,但基本上 protobuf 使这比 Java 更容易推理。)
  • 意外地将不可序列化的成员引入 Java 二进制序列化要容易得多,因为原始描述 rune 件全部都与序列化有关...您不能引用任意类等。

我曾经参与过使用 Protocol Buffer 的项目,也参与过使用 Java 二进制序列化的项目 - 我非常不愿意再次使用后者......

关于java - 为什么在java中使用 Protocol Buffer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30784234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com