首页 > 解决方案 > 使用 zeromq 在 2 个 python 程序之间交换信息

问题描述

向社区问好。

我将首先说我对 zeromq 的经验很少,但我需要在以下情况下实施它:

我有一个 python 程序(让它命名为创建者),它的工作是创建任务(python 对象),这些任务(python 对象)被发送到另一个 python 程序(让它命名为计算器),它执行一些计算并返回结果(以数据的形式) 给创作者。

创建者在单独的线程中运行,计算器可以有许多实例,例如多个线程。所以我们有一个创建者和多个计算器,每个计算器都在自己的线程中运行。

到目前为止,我正在使用 RabbitMQ 来绑定所有这些,并且效果很好。我正在使用 2 个 RabbitMQ 队列,创建者在一个名为“for_calc”的队列中发布,该队列由计算器读取。计算完成后,计算器将结果发布到另一个名为“finished”的队列,由创建者回读。

任务是删除 RabbitMQ 并用 zeromq 替换它(我认为它是最好的选择)。

在让我的手“脏”编码之前(我已经尝试了一些 REP/REQ 和一个设备,但它没有工作)我需要决定我需要用于所有这些的架构。

有多种通信模式(REP/REQ、PUB/SUB 等)是否使用设备,我不确定要实现什么。

出于某种原因,我认为我需要为我的两个队列中的每一个使用一个转发设备。在我的程序逻辑中,我的创建者和我的计算器都是发布者和订阅者。

我应该使用单个设备将我的创建者绑定到我的所有计算器还是每个计算器的多个设备?

感谢您的建议

标签: pythonrabbitmqzeromq

解决方案


推荐阅读