RabbitMQ消息顺序性保障

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

场景分析:

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

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
小霞在敲代码29 分钟前
RabbitMQ-如何保证消息不丢失
消息队列·rabbitmq
海梨花3 小时前
【从零开始学习RabbitMQ】
分布式·学习·rabbitmq
简色5 小时前
预约优化方案全链路优化实践
java·spring boot·后端·mysql·spring·rabbitmq
邂逅星河浪漫20 小时前
【RabbitMQ】docker-compose编排部署RabbitMQ容器——CentOS
分布式·docker·centos·rabbitmq·docker-compose
会开花的二叉树1 天前
RabbitMQ C++ 客户端封装与实战
c++·rabbitmq·ruby
laolitou_10242 天前
CentOS 7安装部署RabbitMQ
linux·centos·rabbitmq
Terio_my2 天前
RabbitMQ 安装与配置
分布式·rabbitmq
程序员小凯2 天前
RabbitMq入门之概括
分布式·消息队列·rabbitmq
!chen2 天前
RabbitMQ的安装集群、镜像队列配置
分布式·rabbitmq·ruby
一只学java的小汉堡2 天前
RabbitMQ 在 Windows 环境下启动失败的完整解决方案
windows·分布式·rabbitmq