RabbitMQ消息顺序性保障

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

场景分析:

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

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
hong_zc1 小时前
简单入门RabbitMQ
rabbitmq
chilavert3184 小时前
从RPA项目说说RPC和MQ的使用。
开发语言·qt·rpc·rabbitmq
@小了白了兔14 小时前
RabbitMQ工作流程及使用方法
分布式·rabbitmq
噼里啪啦啦.1 天前
RabbitMQ
分布式·rabbitmq
希忘auto1 天前
详解RabbitMQ工作模式之通配符模式
rabbitmq
yuanlaile2 天前
RabbitMQ高并发秒杀、抢购系统、预约系统底层实现逻辑
分布式·rabbitmq·rabbitmq高并发·rabbitmq项目实战·rabbitmq实战教程
MYBOYER2 天前
Kafka、RabbitMQ、RocketMQ的区别
kafka·rabbitmq·rocketmq
椰椰椰耶2 天前
【RabbitMQ】路由模式和通配符模式的具体实现
分布式·rabbitmq
jstart千语2 天前
【消息队列】RabbitMQ基本认识
java·服务器·分布式·rabbitmq
码观天工2 天前
【.NET必读】RabbitMQ 4.0+重大变更!C#开发者必须掌握的6大升级要点
c#·rabbitmq·.net·mq