查了下网上的资料,说的都比较笼统,其中有这样的一个方案:
消息体通过hash分派到队列里,每个队列对应一个消费者,多分拆队列。
不过不太懂,不知道有没有详细的方案。
既然都叫队列,你说如何保证 顺序 消费,连顺序都不能保证的就不叫队列了。
移步了解Queue数据结构。
队列中只是存放了发布方的顺序消息,但是消费者是否是顺序消费又是一回事。
@又见阿郎: 应该是保证接收顺序与推送顺序一致 ,无法保证 生产顺序-消费顺序一致
不懂就别瞎回答
@白丸: 你很懂你牛逼。
@花飘水流兮: 不好意思,比你稍微懂的多点。还是那句话,不懂就别瞎回答。
@白丸: 厉害,厉害!
明白说什么了?
队列不是先进先出吗?懵逼
同样问个顺序问题:业务需要生产顺序-消费顺序完全一致。
现在由于网络问题导致RabbitMQ在接收时顺序就乱了。比如A B两个消息,生产顺序是A-B,但是B先到达RabbitMQ了,A还没到,导致先消费了B!怎么解决呢?
既然ribbitmq无法直接控制顺序,那就只能控制消费端或者生产端了,1、生产端按序发送给消费端,在消费端消费完返回确认后再发送下一条;2、生产端把消息全部发给消费端,消费端设置几个线程分别接受不同的消息,让线程按序执行就好了