gpt4 book ai didi

rabbitmq - 确认第一条消息后发送第二条消息。 RabbitMQ 能保证顺序吗?

转载 作者:行者123 更新时间:2023-12-02 16:45:52 24 4
gpt4 key购买 nike

假设多个生产者发布到同一个交易所 E(扇出)。每个生产商都有自己的 channel 。队列 Q 绑定(bind)到交换机 E。生产者 P1 向 E 发布消息 M1,并从 E 接收确认 A1。只有在确认 A1 后,第二个生产者 P2 才发布第二条消息 M2。 RabbitMQ 是否保证 Q 中消息的顺序:M1 是第一,M2 是第二?也就是说订阅 Q 的消费者总是会收到 M1,然后收到 M2?

最佳答案

RabbitMQ 保证队列中消息的顺序:先进先出。进入队列的第一条消息将是从队列中出来的第一条消息,并且它们将保持顺序(假设您只是使用并确认它们......如果您开始确认/拒绝消息,请重新发布它们等等,事情发生了变化)

这是它对消息顺序的唯一保证:先进先出队列。

如果您需要保证消息传递到队列的顺序,您必须自己构建该流程。

FWIW,建立这种保证非常困难。确保消息顺序的唯一真正有保证的方法是在第一个消息处理完成之前不要发送下一个消息。

即使您在发送下一个之前等待发布者确认,下一个也有可能在第一个之前进入队列(尽管这种情况极不可能)。

您可能想查看Message SequenceResequencer如果你需要保证客户端按一定的顺序收到消息。

关于rabbitmq - 确认第一条消息后发送第二条消息。 RabbitMQ 能保证顺序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35686339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com