RabbitMQ消息顺序性保障

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

场景分析:

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

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
龙仔7254 小时前
离线安装rabbitmq全流程
分布式·rabbitmq·ruby
我是苏苏17 小时前
消息中间件RabbitMQ-01:简要介绍及其Windows安装流程
分布式·rabbitmq
码熔burning17 小时前
【MQ篇】初识RabbitMQ保证消息可靠性
java·分布式·rabbitmq·可靠性
我爱布朗熊17 小时前
4.RabbitMQ - 延迟消息
rabbitmq·springboot
mikey棒棒棒20 小时前
使用RabbitMQ实现判题功能
分布式·消息队列·rabbitmq·oj
码熔burning1 天前
【MQ篇】RabbitMQ之工作队列模式!
java·分布式·rabbitmq·mq
一切顺势而行1 天前
rabbitmq 面试题
分布式·rabbitmq
青灯文案12 天前
RabbitMQ 详解(核心概念)
分布式·rabbitmq
大飞哥~BigFei2 天前
rabbitmq-spring-boot-start版本优化升级
rabbitmq·rabbitmq启动器
hoho不爱喝酒2 天前
微服务 RabbitMQ 组件的介绍、安装与使用详解
微服务·rabbitmq·ruby