大多数现代API都是使用
JSON构建的,并通过HTTP进行请求/响应消息传递.由于ZeroMQ是通过TCP,可以在ZeroMQ上构建基于JSON的API吗?如果是这样,优势是什么?用途是
>开发人员为与一个或多个Web服务器通信的客户端/设备编写应用程序,以及
> Web服务器与Web服务器通信.
解决方法
是的,基于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是受控环境中通信的绝佳选择,因为它具有并发功能和明确定义的使用模式.