顺序性: 消息的顺序性是指消费者消费到消息和发送者发布的消息的顺序是一致的
举个例子,不考虑消息重复的情况下,如果生产者发布的消息分别为msg1、msg2、msg3 那么消费者必然也是按照 msg1、msg2、msg3 的顺序来消费的
目前很多资料显示RabbitMQ消息能够保障顺序性,这是不在正确的,或者说这个观点有很大局限性。在不使用任何Rabbitmq 的高级特性,也没有消息丢失、网络故障之类异常的情况下发生,并且只有一个消费者的情况下,也只有一个生产者的情况下可以保证消息的顺序性。如果有多少生产者同时发送消息,无法确定消息到达Broker的前后顺序,也就无法验证消息的顺序性,因为每一次消息的发送都是在各自的线程中进行的
生产端启动事务机制,单生产者单消费者。如果我们不考虑消息到达MQ的顺序。只是考虑对已经到达MQ的消息顺序消费,那么需要保证消费者是单消费者即可