0

这就是我想要实现的目标:

  1. 在 Proc #1 中使用 google 协议缓冲区对对象建模
  2. 使用 proto-buf 序列化该对象并通过 posix 消息队列发送它。

  3. 读取流并将其反序列化为 Proc #2 中的类似模型,也使用协议缓冲区。

换句话说:

Proc #1 中的对象 --> 序列化 --> 发送到 Posix MQ --> 从 Posix MQ 接收 --> 反序列化 --> Proc #2 中的对象

问题是 Proc #1 和 Proc #2 可能是完全不同的语言平台。Proc #1 通常是符合 g++ 的 C++。但是 Proc #2 可以是任何东西:Python、Java 等...(仅受对 Protobuf 支持的限制)。

现在我想确定 Protocol Buffer 的序列化策略是否足够通用,反序列化可以在任何语言代码库上工作?

4

1 回答 1

0

是的,这是有保证的。Protobuf 定义了如何序列化和反序列化数据,任何语言的 Protobuf 库都应该实现相同的序列化协议。

这也是 GRPC 可以使用多种语言的原因,例如,您可以拥有一个 C++ GRPC 服务器和一个 Java GRPC 客户端。

于 2019-07-28T04:25:59.313 回答