RabbitMQ消息顺序性保障

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

场景分析:

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

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
Albert Edison9 小时前
【RabbitMQ】发布 / 订阅模式(使用案例)
分布式·rabbitmq
ldj20201 天前
从 API 调用到事件驱动:用 RabbitMQ /RocketMQ重构微服务通信架构
架构·rabbitmq
喝汽水的猫^1 天前
Spring Boot + RabbitMQ 实战:消息可靠投递+防重复消费(可直接落地)
spring boot·rabbitmq·java-rabbitmq
8Qi82 天前
RabbitMQ高级篇:消息可靠性、幂等性与延迟消息
java·分布式·微服务·中间件·rabbitmq·springcloud
REDcker2 天前
RabbitMQ系列03 - AMQP分层与协议流转
分布式·rabbitmq
Albert Edison2 天前
【RabbitMQ】工作队列模式(使用案例)
分布式·rabbitmq·ruby
MoFe12 天前
【Rabbitmq】windows环境下搭建与使用
分布式·rabbitmq
REDcker2 天前
RabbitMQ系列04 - 流控与信用机制
分布式·rabbitmq
色空大师3 天前
【微服务项目-短信平台】
java·redis·微服务·rabbitmq·springcloud·短信
win x3 天前
RabbitMQ 七种工作模式
分布式·rabbitmq