我们有多个使用者处理创建消息,但是我们要确保FIFO顺序,因此,如果我们创建产品A,则必须拒绝下一次创建产品A。
问题是因为我们有多个消费者来处理这种类型的消息,因此有可能使消费者1在消费者2之后完成。例如,与相同产品的消息2相比,消息1包含更多要保存的数据。
在多个使用者之间运行RabbitMQ违反了队列的FIFO原则。使用RabbitMQ是否有避免这种情况的方法,或者我们必须以一种更面向Java威胁的控件的方式来调整我们的体系结构?
谢谢
答案 0 :(得分:1)
与多个使用者一起运行RabbitMQ违反了FIFO的原则 队列。
不,不是。消息以FIFO顺序传递。多个使用者将导致消息在它们之间循环传递,但它们仍按FIFO顺序传递。
如果要保留此订单,则只能使用一个使用者,或在各个使用者流程之间协调工作。
注意: RabbitMQ团队监视the rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。