什么是顺序消费?

消息有序指的是一类消息消费时,能按照发送的顺序来消费。例如:一个订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照这个顺序消费才有意义。与此同时多笔订单之间又是可以并行消费的。

rocketmq是怎么实现顺序消费的呢?

①rocketmq保证同一个订单的消息,一定要发送到同一个队列
②并且该队列只有一个消费者,也就是说 同一个队列,不能出现多个消费者并行消费的情况
到这里可能有的人会问,一个队列只有一个消费者,那性能岂不是很低?关于这个情况,rocketmq的解决方法是,虽然同一个队列不能并行消费,但是可以并行消费不同的队列。就是上面说的同时多笔订单之间又是可以并行消费。

我们通过这张简图可以大致理解顺序消费的原理;

在上一篇的中我们提到了一个叫做 MessageQueueSelector 的组件,就是producer在发送消息的时候,如果不指定队列就会默认发送到topic下面的4个队列中的任意一个,如果使用MessageQueueSelector 就可以在发送消息的时候指定队列,依照这样的思路,我们来整理一下实现的思路;

1. 发送一组顺序订单消息,创建订单,订单支付,完成订单,但是他们拥有相同的

rocketMq 顺序消费相关推荐

  1. RocketMQ——顺序消费(代码)

    关于rocketmq顺序消费的理解和图示可以查看该博文:RocketMQ--顺序消费和重复消费 本博客主要是以代码示例来了解顺序消费的相关内容,建议在此之前先了解下顺序消费的原理. 注:RocketM ...

  2. 一次 RocketMQ 顺序消费延迟的问题定位

    一次 RocketMQ 顺序消费延迟的问题定位 问题背景与现象 昨晚收到了应用报警,发现线上某个业务消费消息延迟了 54s 多(从消息发送到MQ 到被消费的间隔): 2021-06-30T23:12: ...

  3. rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ

    RocketMQ 是阿里巴巴在2012年开源的分布式消息中间件,目前已经捐赠给 Apache 软件基金会,并于2017年9月25日成为 Apache 的顶级项目.作为经历过多次阿里巴巴双十一这种&qu ...

  4. 一文理清RocketMQ顺序消费、重复消费、消息丢失问题

    前言 在使用消息队列时不可避免的会遇到顺序消费.重复消费.消息丢失三个问题.在一次面试字节的时候,面试官问到如何保证顺序消费,当时回答不太准确,特意此文回顾如何解决顺序消费.重复消费.消息丢失三个问题 ...

  5. RocketMQ 顺序消费只消费一次 坑

    rocketMq实现顺序消费的原理 produce在发送消息的时候,把消息发到同一个队列(queue)中,消费者注册消息监听器为MessageListenerOrderly,这样就可以保证消费端只有一 ...

  6. rocketmq 顺序消费_RocketMQ核心概念扫盲

    在正式进入RocketMQ的学习之前,我觉得有必要梳理一下RocketMQ核心概念,为大家学习RocketMQ打下牢固的基础. 1.RocketMQ部署架构 在RocketMQ主要的组件如下: Nam ...

  7. rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读

    推荐阅读一下下 2020年后想跳槽?MQ.ZK.Nginx.Kafk等分布式技术你都掌握了? 阿里架构师推荐学习的<RabbitMQ实战指南>,渣渣的你都看过吗? RocketMQ入门手册 ...

  8. 顺序消费可没你想的这么简单,队列数量的变更往往无法保证同一个账号的消息发送到同一个分区,怎么解决?

    掌握一到两门java主流中间件,是敲开BAT等大厂必备的技能,送给大家一个Java中间件学习路线,助力大家实现职场的蜕变. Java进阶之梯,成长路线与学习资料,助力突破中间件领域 在金融行业中,如果 ...

  9. rocketmq 消费方式_RocketMQ事务消费和顺序消费详解

    一.RocketMq有3中消息类型 1.普通消费 2. 顺序消费 3.事务消费 顺序消费场景 在网购的时候,我们需要下单,那么下单需要假如有三个顺序,第一.创建订单 ,第二:订单付款,第三:订单完成. ...

最新文章

  1. 移动终端三分天下 何与争峰
  2. java poi jar maven_导出maven项目依赖的jar包(图文教程)
  3. AI 经典书单 | 人工智能学习该读哪些书
  4. Selenium模拟光标进入和tab键移动
  5. React Native之react-native bundle --platform android --dev false --entry-file index.js --bundle失败
  6. Linux 环境下 Git 安装与基本配置
  7. css修改layui的下拉框样式 js_layui的安装以及简单操作
  8. 合理使用Blob/Clob
  9. 怎么去掉word标题前的黑点
  10. C#程序之二 -- 数独小游戏(1. UI设计)
  11. OSPF路由协议实验配置命令
  12. C++ RQNOJ 星门龙跃
  13. 创新工场汪华:给早期创业者的44条建议
  14. 戴尔服务器安装ESXI
  15. Dell服务器进入双系统按键,dell进bios按什么键 戴尔进bios的方法
  16. 【Qt5】关于Qt5对xp的兼容说明
  17. Openstack租户(项目)、用户、角色的概念与管理
  18. Android中开启子线程的方法和应用场景
  19. 如何下载安装和使用 Office 2016的中文语言包?
  20. 谈网站项目的WBS分解

热门文章

  1. win7 lnk 图标丢失——图片缓存问题
  2. P2475 [SCOI2008]斜堆(递归模拟)
  3. linux编译内核的步骤
  4. 单主机Docker容器VLAN划分
  5. VS2017 提示警告 IDE0006
  6. XPath CheatSheet
  7. 机器学习与R语言(原书第2版)》一1.4 实践中的机器学习
  8. 1835 魔法猪学院
  9. [技术收藏]关于IOPS
  10. Log4j2使用总结