通过分区规则可以实现同类消息在rocketmq上的顺序存储。但是对于消费端来说,如何保证消费的顺序?

我们前面写的消息消费代码使用的是MessageListenerConcurrently并发监听,也就是基于多个线程并行来消费消息。这个无法保证消息消费的顺序。RocketMQ中提供了MessageListenerOrderly 一个类来实现顺序消费,

consumer.subscribe("store_topic_test","*"); consumer.registerMessageListener((MessageListenerOrderly) (list,
consumeOrderlyContext) -> {
list.stream().forEach(messageExt -> System.out.println(new
String(messageExt.getBody())));
return ConsumeOrderlyStatus.SUCCESS;
});

顺序消费会带来一些问题,

1. 遇到消息失败的消息,无法跳过,当前队列消费暂停

2. 降低了消息处理的性能

如何保证消息消费顺序呢?相关推荐

  1. 多线程顺序消费MySQL数据_关于MQ的几件小事(五)如何保证消息按顺序执行

    1.为什么要保证顺序 消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常.举例: 比如通过mysql binlog进行两个数据库的数据 ...

  2. 【重难点】【RabbitMQ 02】如何避免消息重复投递和消息重复消费、如何防止消息丢失、如何保证消息的顺序性、如何保证消息队列的可用性

    [重难点][RabbitMQ 02]如何避免消息重复投递和消息重复消费.如何防止消息丢失.如何保证消息的顺序性.如何保证消息队列的可用性 文章目录 [重难点][RabbitMQ 02]如何避免消息重复 ...

  3. kafka的消费顺序_Kafka如何保证消息的顺序性

    1. 问题 比如说我们建了一个 topic,有三个 partition.生产者在写的时候,其实可以指定一个 key,比如说我们指定了某个订单 id 作为 key,那么这个订单相关的数据,一定会被分发到 ...

  4. 消息队列面试 - 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

    消息队列面试 - 如何保证消息不被重复消费? 面试题 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? 面试官心理分析 其实这是很常见的一个问题,这俩问题基本可以连起来问.既然是消费消息, ...

  5. 消息队列面试 - 如何保证消息的顺序性?

    消息队列面试 - 如何保证消息的顺序性? 面试题 如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保证消息是有顺序的 ...

  6. java 如何判定消息已在队列_【05期】消息队列中,如何保证消息的顺序性?

    本文选自:advanced-java 作者:yanglbme 问:如何保证消息的顺序性? 面试官心理分析 其实这个也是用 MQ 的时候必问的话题,第一看看你了不了解顺序这个事儿?第二看看你有没有办法保 ...

  7. 消息中间件(五)——如何保证消息的顺序性

    当我们的系统中引入了MQ之后,不得不考虑的一个问题是如何保证消息的顺序性,这是一个至关重要的事情,如果顺序错乱了,就会导致数据的不一致. 比如:业务场景是这样的:我们需要根据mysql的binlog日 ...

  8. RabbitMQ如何保证消息的顺序性【重点】

    1.1 保证顺序性的意义 消息队列中的若干消息如果是对同一个数据进行操作,这些操作具有前后的关系,必须要按前后的顺序执行,否则就会造成数据异常. 举例:   比如通过mysql binlog进行两个数 ...

  9. 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)?

    1.面试题 如何保证消息不被重复消费啊(如何保证消息消费时的幂等性)? 2.面试官心里分析 其实这个很常见的一个问题,这俩问题基本可以连起来问.既然是消费消息,那肯定要考虑考虑会不会重复消费?能不能避 ...

最新文章

  1. vue前端用服务器上路径的图片展示_5分钟教你用nodeJS手写一个mock数据服务器
  2. Qt+OpenCV界面
  3. N-Gram的数据结构
  4. PHP语言 -- 文件上传
  5. 解析xml的4种方法详解
  6. jQuery常用技巧大放送
  7. 马哥学习李洋个人笔记之-----正则表达式
  8. 计算机图形图像发展前景,计算机图形学发展前景有什么趋势?
  9. 覆盖索引与联合索引_Mysql性能优化:为什么要用覆盖索引?
  10. 图片配置文件设置 索尼a7s2_一招让索尼相机直出电影机色彩
  11. 莫队--2038: [2009国家集训队]小Z的袜子(hose)
  12. [bug解决] TensorFlow安装错误:ERROR After October 2020 you may experience errors when installing
  13. python项目小案例:一个网页响应超时提醒小闹钟
  14. C++中vector的访问和赋值
  15. bxp客户端手工PNP基本过程(转)
  16. java经纬度度分秒转换为小数点格式
  17. windows源文件名称大于文件系统支持的长度无法删除问题
  18. 计算机/设备和驱动器下有一个空白盘符无法删除
  19. TreeHelper 是一个将含有id,parentId属性的JavaBean转化为层次分明的树形结构的工具类。
  20. 象观敏捷之旅-用户故事与敏捷方法

热门文章

  1. python数据结构与算法之排序
  2. 《百面机器学习算法工程师带你去面试》资料学习
  3. 【JZOJ4307】喝喝喝
  4. parameter乱码提交的问题
  5. JDBC操作数据库的基本流程
  6. 关于编译器的一个疑问
  7. OAuth 2.0初学者指南
  8. hdu1006 Tick and TIck
  9. 安卓自定义Listener
  10. 执行游戏时出现0xc000007b错误的解决方法