在单个队列上运行多个使用者

时间:2019-01-23 18:53:26

标签: rabbitmq

请解决我的问题。我的电子邮件队列和消息顺序对我来说很重要。假设如果以前未读取消息“ A”,现在将其标记为“已读”,则应该对它进行索引,否则顺序将被更改已读消息将被索引为未读。因此,我的问题是如何运行多个使用者以维护数据的完整性。还要让我知道是否需要更多说明。

1 个答案:

答案 0 :(得分:0)

在这种情况下,在具有多个使用者的Direct Exchange上排队是最好的。

在prefetchCount = 1设置下使用basicQos方法。

这告诉RabbitMQ一次不向工人发出多条消息。换句话说,在处理并确认上一条消息之前,不要将新消息发送给工作人员。而是将其分派给不忙的下一个工作器。

Java代码:

channel.basicQos(1);

有关更多详细信息: https://www.rabbitmq.com/tutorials/tutorial-two-java.html