python – 连接到消息队列的多个消费者和生产者,这在AMQP中是否可能?

我想创建一个能够OCR文本的进程场.
我曾考虑使用由多个OCR进程读取的单个消息队列.

我想确保:

>最终处理队列中的每条消息
>工作或多或少平均分配
>图像只能由一个OCR进程解析
> OCR进程不会立即获得多条消息(因此任何其他免费OCR进程都可以处理该消息).

使用AMQP可以吗?

我打算用python和rabbitmq

解决方法:

是的,这是可能的.用于我正在进行的实时MMO游戏的服务器集群以这种方式运行.我们使用ActiveMQ,但我认为RabbitMQ也可以实现这一切.

您提到的所有项目都是开箱即用的,除了最后一项.

>最终处理队列中的每条消息 – 这是消息代理的主要职责之一
>工作或多或少均匀分布 – 这是另一个:)
>图像将仅由一个OCR进程解析 – 为此存在/ topic和/ queue的区别.主题就像广播信号,队列是任务.您的方案中需要/ queue

为了使最后一个以期望的方式工作,消费者在订阅队列时发送特定于AMQ的参数:

activemq.prefetchSize: 1

此设置可确保消费者在收到消息后不再接收任何消息,直到它向AMQ发送确认消息.我相信RabbitMQ中存在类似的东西.

上一篇:RabbitMQ永远带有Spring重新传递信息


下一篇:Java中对Array数组的常用操作