我想实现一个系统:
显然,REQ / REP模式是正确的使用模式。但是:
据我所知,正确的模式是DEALER / ROUTER,这是正确的吗?或者有更好的方法吗?
客户端应该能够发送许多请求,并且应该异步接收相应的响应。
提前致谢
答案 0 :(得分:2)
是的,客户端将是DEALER
套接字,服务器将是ROUTER
套接字,它应该按照您的需要运行。只要您只有一台服务器,这将正常工作。如果您添加更多服务器,DEALER
套接字将以循环方式向每个服务器发送请求,这可能是也可能不是您所追求的。如果它们连接到多个服务器,它们将不允许您选择特定服务器。只要你记住这一点,还有其他策略可以解决这个问题,但现在你不用担心它。
答案 1 :(得分:1)
ZMQ-Formal Communication Patters是开始构建的基本原语。只是忘记在现实问题上重复使用REQ
/ REP
或任何其他ZMQ原语。
想象一下由几个原型中的几个原型组成的消息传递系统:
CLIENT为其他消息设置了面向SERVER的消息接口+ .bind()
-s另一个
SERVER在中央位置获取CLIENT请求(同时作为着色进程执行)
SERVER使用VENTILATOR / QUEUE / pool-of-Workers派遣 jobTask
-s
SERVER告诉WORKER里面 jobTask
什么客户端与
WORKER {进入|发送 - 观察 - 退出|退出}一个工作池,带有“后端”状态信号
WORKER告诉SERVER {个人 jobTask
{开始|完成}并且它自己的状态
WORKER添加了另一个ad-hoc PUB
传输链接的客户导向 .connect()
资源
WORKER告诉客户(有选择地) .connect()
SUB
在哪里有选择地接收&异步
可用于实际架构的更多设计方面选项......