【问题标题】:ZeroMQ pattern for multiple asynchronous requests to single endpointZeroMQ 模式,用于对单个端点的多个异步请求
【发布时间】:2015-06-23 09:37:46
【问题描述】:

我正在使用 zmq 开发具有以下网络拓扑的分布式应用程序:发起请求的客户端节点和响应请求的服务器节点。由于客户端是 node.js 应用程序,我无法在发送调用后阻塞以等待响应,因此场景是客户端可以向同一个端点发出多个发送调用。另一方面,服务器是一个移动应用程序,它在一个线程中一次处理一个请求,如果没有任何请求则阻塞。 如果这个配置听起来很奇怪,我正在尝试构建一种由服务器发起的 RPC 到移动设备。

我想使用 DEALER 套接字客户端和 REP 套接字服务器端。来自关于 DEALER/REP 组合的 zmq 指南:

这为我们提供了一个可以与多个 REP 服务器通信的异步客户端。如果我们使用 DEALER 重写“Hello World”客户端,我们将能够发送任意数量的“Hello”请求而无需等待回复。

它可以应用于可以与单个服务器通信的异步客户端吗?它会是一个不错的选择吗?如果不是,我应该使用哪种模式?

【问题讨论】:

    标签: sockets asynchronous zeromq


    【解决方案1】:

    它可以应用于可以与单个服务器通信的异步客户端吗?它会是一个不错的选择吗?

    1. 不建议将 REQ/REP 用于通过 Internet 传输的流量。套接字可能会陷入不良状态。
    2. DEALER/REP 用于与多个 REP 服务器对话的经销商客户端。所以这不适用于您的用例。

    如果不是,我应该使用哪种模式?

    在您的情况下,在我看来,使用传统的 DEALER/ROUTER 是可行的方法。我通常做的是在我的消息前面加上一个“标签框架”,即一个包含某种 UUID 的框架,它允许我在应用程序级别识别我的请求(及其回复)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2015-01-17
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多