RabbitMQ:
一个队列,多个消费者。多个,生产者向RabbitMQ里发送了三条数据,顺序依次是data1 / data2 / data3,压入的是RabbitMQ的一个内存容量。有三个消费者分别从MQ中消费这三条数据中的一条,结果消费者2先执行完操作,把data2存入数据库,然后是data1 / data3。这不明显乱了。
分为多个队列,每个队列一个消费者,就是多一些队列而已,确实是麻烦点;或者就一个队列但对应一个消费者,然后这个消费者内部用内存分配做排队,然后分配给不同的工人来处理。
原文链接:https://doocs.github.io/advanced-java/#/./docs/high-concurrency/how-to-ensure-the-order-of-messages