对于已发送confirm.select
方法的发布者,对RabbitMQ经纪文档的字面读取表明,客户可以以与原始消息不同的顺序收到消息确认响应出版了。
任何人都可以验证情况确实如此吗?还是消息总是按照收到的顺序确认?如果可以按不同的顺序收到消息确认,则需要哪些条件?
任何人都可以验证情况确实如此吗?
是的,可以以不同的顺序确认消息
这种情况需要什么条件?
确认的基本规则如下:
- 在基本之后,确认不可用的强制性或直接消息。返回;
- 否则,暂时消息被确认时被确认。
- 当持续到磁盘或 在每个队列上消费。
因此,可能的原因可能是:
- 考虑到持续消息尚未持续存在的情况,而是转发给消费者的情况。由于消息是以异步处理的处理,因此消费者可能会以不同的顺序进行不同的消息,因此确认的顺序将相应地改变。
- TCP问题。发布者发布的数据包不能保证以相同的顺序到达代理服务器。因此,出版商不能假定以与其发布的顺序相同的顺序接收。