【问题标题】:What's the Transport Protocol for MessagePack / Protocol Buffers?MessagePack / Protocol Buffers 的传输协议是什么?
【发布时间】:2017-03-05 19:05:58
【问题描述】:

有几个用于数据序列化的库,如 MessagePack、Protocol Buffers 等。

但是传输协议应该是什么?应该是 HTTP REST 还是其他?

对我来说,使用 REST 没有多大意义,因为 HTTP 有开销。因此,如果我们决定优化速度并使用 ProtoBuff,那么半途而废并仅优化序列化而不优化 Transport 似乎是不合逻辑的。

【问题讨论】:

    标签: protocol-buffers msgpack messagepack


    【解决方案1】:

    对于 Protobuf,您应该使用gRPC,这是 Google 的官方 RPC 实现。它很高效,但更重要的是,它旨在与 Protobuf 很好地集成——例如您可以将服务定义与消息类型一起写入.proto 文件中。

    另一种与许多序列化格式搭配得很好的常用传输是ZeroMQ

    【讨论】:

      【解决方案2】:

      协议缓冲区只是常见的序列化格式。您可以随心所欲地运输它们。

      您可以通过 tcp 甚至 udp 套接字发送原始字节。但是您的应用程序使用 http 也可能是合理的。如果有意义的话,你甚至可以将它们封装在 html/xml 中。

      【讨论】:

        最近更新 更多