我使用zmq开发具有以下网络拓扑的分布式应用程序:发起请求的客户端节点和回复请求的服务器节点。由于客户端是node.js应用程序,因此我无法在发送调用之后阻塞以等待响应,因此情况是客户端可以向同一端点发出多个发送调用。另一方面,服务器是一个移动应用程序,它在一个线程中一次处理一个请求,如果没有任何请求则阻塞。 如果这种配置听起来很奇怪,我试图构建一种由服务器发起的移动RPC。
我想使用DEALER套接字客户端和REP套接字服务器端。从zmq指南关于DEALER / REP组合:
这为我们提供了一个可以与多个REP服务器通信的异步客户端。如果我们改写了“Hello World"客户使用经销商,我们能够发送任何数量的" Hello"请求,无需等待回复。
是否可以应用于可与单个服务器通信的异步客户端?它可能是一个不错的选择吗?如果不是我应该使用哪种模式?
答案 0 :(得分:2)
是否可以应用于可与单个服务器通信的异步客户端?它可能是一个不错的选择吗?
如果不是我应该使用哪种模式?
在您的情况下,在我看来,使用传统的经销商/路由器是可行的方法。我通常做的是通过“标记框架”添加我的消息,即包含某种UUID的框架,允许我在应用程序级别标识我的请求(及其回复)。