【问题标题】:Difference between ZeroMQ asynchronous http requests and Messages?ZeroMQ异步http请求和消息的区别?
【发布时间】:2020-05-07 08:35:39
【问题描述】:

在 ZeroMQ 中发送数据时,使用异步 HTTP 请求与使用消息有何不同?

【问题讨论】:

    标签: asynchronous python-requests zeromq conceptual grequests


    【解决方案1】:

    http 请求只是在两台机器(客户端和服务器)之间使用通过 IP 使用的超文本传输​​协议。它可用于在任一方向移动数据。对于这些数据可以是什么没有特别的限制。异步请求只是请求者不费心等待发出请求的回复的请求。它会使用某种机制来与请求会合,无论何时发生。

    通过 ZeroMQ 发送消息可能有些相似,特别是 REQ/REP 模式(请求、回复)。与 http 请求类似,请求者将发送某种消息,而回复者将以某种方式回复,并且严格按照这种模式。

    ZeroMQ 使用自己的协议 zmtp 来移动消息。同样,没有什么真正限制消息中的数据。 ZeroMQ 本质上是异步的——它实现了 Actor 编程模型(尽管我注意到某些语言中的一些实现方式削弱了 ZeroMQ 的简单性,即适应语言自己的异步方式,而不是使用 ZeroMQ 提供的轮询函数)。

    然而,ZeroMQ 在 zmtp 之上构建了比 req/rep 更多的数据分发模式,例如 pub/sub、dealer/router,而 http 根本无法与之对应。进一步的区别是 ZeroMQ 可以使用 IP、进程间通信或内存中传输;这使得它非常适合应用程序内使用和机器间分布式应用程序。我想也可以通过 ipc 联系网络服务器,但我从未听说有人愿意这样做。 Http 预计将用于特定端口(例如端口 80),而 ZMQ 可用于开发人员想要的任何端口(如果他们想要安静的生活,请遵守正常的端口分配规则)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      相关资源
      最近更新 更多