首页 文章

ZMQ模式;发送然后接收

提问于
浏览
0

我一直在阅读zmq设计模式,但我似乎没有找到适合我的需要 .

1. Box A sends info (json) to Box B and C; B and C gets different info from each other  
2. Boxes B and C do some work based on info received from Box A  
3. After finishing the work, Boxes B and C sends result back to Box A

转发器设备(http://learning-0mq-with-pyzmq.readthedocs.org/en/latest/pyzmq/devices/forwarder.html)可以实现步骤1和2而不是3,对吗?

我可以使用任何模式来实现吗?
这是简单的请求/回复模式吗?
如果是这样,是否有一个集中的请求/回复模式,以便Box A不会选择Box B和C,而是Box A将信息发送到某个中心,它知道发送到Boxes B和C并将结果发送回Box A?

2 回答

  • 2

    这看起来像指南中的一个非常基本的负载 balancer 模式 . A是控制器,将是一个路由器,而 Worker B和C是经销商 . 消息传递很简单;经销商向控制器发送初始消息,说“我准备好了” . 然后,控制器将工作分发给准备好的工作人员 .

    这种拓扑结构与杰森的答案相反 . 您选择的只取决于您希望如何扩展您的应用程序 . 当控制器分发工作时,它确实应该交给准备好处理它的 Worker . 保证负载 balancer 模式 .

  • 1

    这是一个非常基本的DEALER / ROUTER模式 .

    经销商的套接字是循环的,这意味着它会向框B发送一个请求,然后是框C的旁边,然后是框B的旁边,等等 . 如果你想在 Worker 完成之前保留任何工作,你只需要必须知道现有 Worker 的数量 .

    在方框B和方框C上,使用ROUTER套接字(如果你的用例很简单,那么使用REP套接字,但这会限制你的选择) . 接收工作,工作,发回,等待更多工作 .

    the guide中有很多这样的例子,我建议你阅读 .

相关问题