ZeroMQ模式用于对单个端点的多个异步请求

时间:2015-06-23 09:37:47

标签: sockets asynchronous zeromq

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

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

  

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

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

1 个答案:

答案 0 :(得分:2)

  

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

  1. 建议不要将REQ / REP用于通过互联网的流量。套接字可能会陷入不良状态。
  2. 经销商客户与经营者客户交谈多个 REP服务器。因此,这不适用于您的用例。
  3.   

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

    在您的情况下,在我看来,使用传统的经销商/路由器是可行的方法。我通常做的是通过“标记框架”添加我的消息,即包含某种UUID的框架,允许我在应用程序级别标识我的请求(及其回复)。