seo外链网,开鲁网站seo不用下载,音乐介绍网站怎么做,网站首页titleRabbitMQ 没有属性设置消息的顺序性#xff0c;只能设置消息的优先级#xff0c;因此消息顺序性保障只能在 consumer 上实现
场景分析#xff1a;
生产者向 RabbitMQ 里发送了三条数据#xff0c; 顺序依次是 data1- data2 - data3#xff0c;压入的是一个内存…RabbitMQ 没有属性设置消息的顺序性只能设置消息的优先级因此消息顺序性保障只能在 consumer 上实现
场景分析
生产者向 RabbitMQ 里发送了三条数据 顺序依次是 data1- data2 - data3压入的是一个内存队列。有三个消费者分别从 MQ 中消费这三条数据中的一条结果消费者2先执行完操作把 data2 存入数据库然后是 data1 - data3此时发生顺序错乱
解决方案
根据业务执行顺序将原先的一个 queue 拆分为多个每个 queue 配一个 consumer 依旧是原有的单 queue 单 consumer 但 consumer 内部使用内存队列保证消息顺序性例如 ArrayBlockingQueue然后分发给底层不同的 worker 来处理