使用zeromq在2个python程序之间交换信息

使用zeromq在2个python程序之间交换信息,python,rabbitmq,zeromq,Python,Rabbitmq,Zeromq,向社区致意 我首先要说的是,我对zeromq几乎没有经验,但我需要在以下情况下实现它: 我有一个python程序(我们称之为creator),它的任务是创建任务(python对象),这些任务被发送到另一个python程序(我们称之为calculator),该程序执行一些计算并将结果(以数据的形式)返回给创建者 创建者在单独的线程中运行,计算器可以有许多实例,例如多个线程。 因此,我们有一个创建者和多个计算器,每个计算器都在各自的线程中运行 到目前为止,我正在使用RabbitMQ绑定所有这些内容,

向社区致意

我首先要说的是,我对zeromq几乎没有经验,但我需要在以下情况下实现它:

我有一个python程序(我们称之为creator),它的任务是创建任务(python对象),这些任务被发送到另一个python程序(我们称之为calculator),该程序执行一些计算并将结果(以数据的形式)返回给创建者

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

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

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

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

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

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

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

谢谢你的建议