多个使用者时的RabbitMQ和FIFO

时间:2018-12-26 13:08:47

标签: rabbitmq spring-amqp fifo

我们有多个使用者处理创建消息,但是我们要确保FIFO顺序,因此,如果我们创建产品A,则必须拒绝下一次创建产品A。

问题是因为我们有多个消费者来处理这种类型的消息,因此有可能使消费者1在消费者2之后完成。例如,与相同产品的消息2相比,消息1包含更多要保存的数据。

在多个使用者之间运行RabbitMQ违反了队列的FIFO原则。使用RabbitMQ是否有避免这种情况的方法,或者我们必须以一种更面向Java威胁的控件的方式来调整我们的体系结构?

谢谢

1 个答案:

答案 0 :(得分:1)

  

与多个使用者一起运行RabbitMQ违反了FIFO的原则   队列。

不,不是。消息以FIFO顺序传递。多个使用者将导致消息在它们之间循环传递,但它们仍按FIFO顺序传递。

如果要保留此订单,则只能使用一个使用者,或在各个使用者流程之间协调工作。


注意: RabbitMQ团队监视the rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。

相关问题