Python 多重消费者&;生产者连接到消息队列,这在AMQP中可能吗?
我想创建一个能够进行OCR文本识别的流程库。 我考虑过使用由多个OCR进程读取的单个消息队列 我要确保:Python 多重消费者&;生产者连接到消息队列,这在AMQP中可能吗?,python,message-queue,rabbitmq,amqp,py-amqplib,Python,Message Queue,Rabbitmq,Amqp,Py Amqplib,我想创建一个能够进行OCR文本识别的流程库。 我考虑过使用由多个OCR进程读取的单个消息队列 我要确保: 队列中的每条消息最终都会被处理 这项工作或多或少是平均分配的 图像将仅通过一个OCR进程进行解析 一个OCR进程不会同时获得多条消息(因此任何其他免费OCR进程都可以处理该消息) 使用AMQP可以做到这一点吗 我计划使用python和rabbitmq是的,这是可能的。我正在开发的实时MMO游戏的服务器集群就是这样运行的。我们使用ActiveMQ,但我认为RabbitMQ也可以实现这一切
- 队列中的每条消息最终都会被处理
- 这项工作或多或少是平均分配的
- 图像将仅通过一个OCR进程进行解析
- 一个OCR进程不会同时获得多条消息(因此任何其他免费OCR进程都可以处理该消息)
我计划使用python和rabbitmq是的,这是可能的。我正在开发的实时MMO游戏的服务器集群就是这样运行的。我们使用ActiveMQ,但我认为RabbitMQ也可以实现这一切 你提到的所有东西都可以从盒子里拿出来,最后一个除外
- 队列中的每条消息最终都会被处理——这是消息代理的主要职责之一
- 这项工作或多或少是平均分配的——这是另一项:)
- 一幅图像将只通过一个OCR进程进行解析-这方面存在/topic和/queue的区别。主题就像广播信号,队列就是任务。在您的场景中需要一个/队列
activemq.prefetchSize: 1
此设置保证消费者在接收完一条消息后,在向AMQ发送
ack
之前,不会再接收任何消息。我相信RabbitMQ中也存在类似的东西。是的,正如@nailxx所指出的。AMQP编程模型与JMS稍有不同,因为您只有队列,可以在工作人员之间共享,也可以由单个工作人员单独使用。您还可以轻松地设置RabbitMQ来执行PubSub用例或JMS中所谓的主题。请转到我们的网页上找到大量关于这方面的有用信息
现在,特别是对于您的用例,已经有很多可用的工具。一个人们经常使用并且得到很好支持的方法是。下面是一个关于它的介绍,我认为这将帮助您开始:
如果您有任何问题,请发电子邮件给我们或发送到rabbitmq讨论邮件列表。+1芹菜看起来很可爱。我会在最近的机会去看看。