RabbitMQ消息顺序性保障

RabbitMQ 没有属性设置消息的顺序性,只能设置消息的优先级,因此消息顺序性保障只能在 consumer 上实现

场景分析:

生产者向 RabbitMQ 里发送了三条数据, 顺序依次是 data1-> data2 -> data3,压入的是一个内存队列。有三个消费者分别从 MQ 中消费这三条数据中的一条,结果消费者2先执行完操作,把 data2 存入数据库,然后是 data1 -> data3,此时发生顺序错乱

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
笨蛋不要掉眼泪7 小时前
RabbitMQ消息队列:发送者的可靠性
java·分布式·rabbitmq
cyadyx8 小时前
RabbitMQ 使用说明文档
分布式·rabbitmq
笨蛋不要掉眼泪1 天前
RabbitMQ消息队列:SpringAMQP
java·分布式·rabbitmq
笨蛋不要掉眼泪1 天前
RabbitMQ消息队列:交换机机制
java·分布式·rabbitmq
重庆小透明2 天前
带你从不同视角了解三大MQ
java·学习·spring·kafka·rabbitmq·rocketmq
晚安code2 天前
RabbitMQ消息可靠性:发送确认、消费者ACK与SpringAMQP实战
rabbitmq
六点_dn2 天前
RabbitMQ学习笔记-交换机类型和路由规则
笔记·学习·rabbitmq
L1624762 天前
消息队列(MQ)总览:RabbitMQ & Kafka 完整手册
分布式·kafka·rabbitmq
刘小八2 天前
RabbitMQ 消息积压排查:从指标定位到消费者扩容
分布式·rabbitmq
小罗水3 天前
第9章 RabbitMQ 消息队列与索引任务
分布式·rabbitmq