RabbitMQ消息顺序性保障

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

场景分析:

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

解决方案:

  1. 根据业务执行顺序将原先的一个 queue 拆分为多个,每个 queue 配一个 consumer
  1. 依旧是原有的单 queue + 单 consumer ,但 consumer 内部使用内存队列保证消息顺序性(例如 ArrayBlockingQueue),然后分发给底层不同的 worker 来处理
相关推荐
卿着飞翔11 小时前
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
java·rabbitmq·java-rabbitmq
计算机毕设定制辅导-无忧学长11 小时前
从 AMQP 到 RabbitMQ:核心组件设计与工作原理(二)
网络·rabbitmq·ruby
找不到、了2 天前
深入学习RabbitMQ队列的知识
分布式·rabbitmq
showmethetime2 天前
RabbitMQ实用技巧
分布式·rabbitmq·ruby
xiaolin03333 天前
【RabbitMQ】- Channel和Delivery Tag机制
分布式·rabbitmq
计算机毕设定制辅导-无忧学长3 天前
RabbitMQ 监控与调优实战指南(一)
分布式·rabbitmq
米粉03053 天前
RabbitMQ 的异步化、解耦和流量削峰三大核心机制
分布式·rabbitmq
噼里啪啦啦.3 天前
RabbitMQ在SpringBoot中的应用
spring boot·rabbitmq·java-rabbitmq
bubiyoushang8883 天前
RabbitMQ如何保证消息可靠性
分布式·rabbitmq·ruby
smileNicky3 天前
RabbitMQ 开机启动配置教程
分布式·rabbitmq