8

大多数现代 API 都是使用 JSON 和 HTTP 上的请求/响应消息构建的。既然 ZeroMQ 是基于 TCP 的,那么基于 JSON 的 API 是否可以基于 ZeroMQ 构建?如果是这样,有什么好处?用途是

  1. 开发人员为与一个或多个网络服务器通信的客户端/设备编写应用程序,以及

  2. 网络服务器与网络服务器通信。

4

1 回答 1

16

是的,基于 json 的 API 可以构建在 ZeroMQ 之上,而不是 HTTP。它需要 REQ/REP 套接字。不过,这似乎不是一个好的选择。

JSON+HTTP 方法的主要优点是可移植性。几乎所有编程环境都开箱即用地支持 JSON+HTTP,ZeroMQ 没有得到如此广泛的支持(例如,浏览器 JS 不支持)。此外,ZeroMQ 的设置也不是那么轻松,因此服务消费者可能不会对这种选择感到满意。

另一方面,ZeroMQ 的主要优势是性能:如果您需要每秒推送许多兆字节(或可能是千兆字节)的数据,它会很棒。JSON 编码/解码速度非常快,但大小对于此类任务也很重要。任何二进制序列化框架似乎都是更好的选择,有很多:protobuf、thrift、BSON、kryo、avro 等。

所以,我会继续将 JSON+HTTP 用于 Web 服务的 API:现代 HTTP 服务器工具提供了出色的性能和可扩展性。ZeroMQ 是在受控环境中进行通信的绝佳选择,因为它具有并发特性和明确定义的使用模式。

于 2013-01-11T16:37:30.360 回答