请解决我的问题。我的电子邮件队列和消息顺序对我来说很重要。假设如果以前未读取消息“ A”,现在将其标记为“已读”,则应该对它进行索引,否则顺序将被更改已读消息将被索引为未读。因此,我的问题是如何运行多个使用者以维护数据的完整性。还要让我知道是否需要更多说明。
答案 0 :(得分:0)
在这种情况下,在具有多个使用者的Direct Exchange上排队是最好的。
在prefetchCount = 1设置下使用basicQos方法。
这告诉RabbitMQ一次不向工人发出多条消息。换句话说,在处理并确认上一条消息之前,不要将新消息发送给工作人员。而是将其分派给不忙的下一个工作器。
Java代码:
channel.basicQos(1);
有关更多详细信息: https://www.rabbitmq.com/tutorials/tutorial-two-java.html