RocketMQ(七)——消息的消费
文章目录
- 消息的消费
- 消费的类型
- Pull方式
- 缺点:
- 优点:
- Push方式
- 缺点
- 优点:
- 消费的模式
- 广播消费
- 集群消费
- 消费进度的保存
消息的消费
消费的类型
- 消费者从Broker中获取消息的方式有两种:Pull(拉取)方式和Push(推送)方式
Pull方式
- Consumer主动从Broker中获取消息,主动权在Consumer。一旦获取了批量消息,就会启动消费过程
缺点:
- 实时性较弱,Broker中有了新的消息时,消费者不能及时发现并消费
优点:
- 便于应用控制消息的拉取
Push方式
Broker 收到消息后会主动推送给Consumer,该方式获取实时性较高
该方式是典型的发布-订阅模式,即Consumer向其关联的Queue注册监听器,一旦发现有新的消息到来就会触发回调,回调方法时Consumer去Queue中拉去消息。这些都是基于Consumer与Broker之间的长连接。而长连接是需要消耗资源的
缺点
- 会占用较多的系统资源
优点:
- 封装了对关联Queue的遍历,实时性强
消费的模式
广播消费
广播消费模式下,相同Consumer Group的每个Consumer实例都接收同一个Topic的全量消息。即:每条消息都会被发送到Consumer Group中的每个Consumer。
集群消费
集群消费模式下,相同Consumer Group的每个Consumer实例平均分摊同一个Topic的消息。即每条消息只会被发送到Consumer Group中的某个Consumer。
消费进度的保存
- 广播模式:消费进度保存在Consumer端,广播模式下consumer group中每个consumer都会消费所有消息,但它们的消费进度是不同。所以consumer各自保存各自的消费进度
- 集群模式:消费进度保存在broker中。consumer group中的所有consumer共同消费一个Topic中的消息,同一条消息只会被消费一次。消费进度会参与到消费的负载均衡中,所以消费进度需要共享。
RocketMQ(七)——消息的消费相关推荐
- 记录Rocketmq定时消息不消费问题的排查过程
记录Rocketmq定时消息不消费问题的排查过程 写在前面 问题根源初步确认 问题根源再次确认. 了解rocketmq定时消息原理以及处理过程. 源码调试 结论求证 后记 写在前面 此本记录了一个项目 ...
- RocketMQ发送消息和消费消息
RocketMQ发送消息和消费消息 一.使用前配置 二.启动命令 三.pom.xml文件配置 四.编码 4.1 先定义一个消息保存的载体: 4.2 定义消息的发送者: 4.3 定义消息的消费者: 五 ...
- RocketMQ常见问题-消息重复消费和消息重复的问题
RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,RocketMQ不解决消息重复问题,重要的事情说三遍. 基本上说我很讨厌有人问这个问题,问这个问题首先你对消息的生命周期缺乏理解 ...
- RocketMQ消息重复消费场景及解决办法
消息重复消费是各个MQ都会发生的常见问题之一,在一些比较敏感的场景下,重复消费会造成比较严重的后果,比如重复扣款等. 那么在什么情况下会发生RocketMQ的消息重复消费呢? 当系统的调用链路比较长的 ...
- RocketMQ事务消息
文章目录 事务消息 RocketMQ事务流程概要 RocketMQ事务流程关键 事务消息的使用约束 分布式事务场景分析 场景案例 RocketMQ事务消息设计分析 消费事务消息 事务消息 Rocket ...
- RocketMQ消息消费源码分析(二消息的消费)
首先回到DefaultMQPushConsumerImpl start方法 public synchronized void start() throws MQClientException {sw ...
- rocketmq 消息指定_SpringBoot 整合 RocketMQ 如何实现消息生产消费?
有时候我们在使用消息队列的时候,往往需要能够保证消息的顺序消费,而RocketMQ是可以支持消息的顺序消费的. RocketMQ在发送消息的时候,是将消息发送到不同的队列中,然后消费端从多个队列中读取 ...
- RocketMQ事务消息从生产到消费原理详解(包括回查过程)
名词解释 half消息(生产者发送的Prepare消息):发送到MQ Server但无法被consumer消费的消息,暂时存在MQ Server,需要收到生产者二次确认后才能被消费 消息回查:一些意外 ...
- RocketMQ如何保证消息顺序消费?又为何不解决消息重复消费问题?
消息的顺序消费对于业务系统来说非常重要,一笔订单产生了3条消息,分别是订单创建.订单付款.订单完成.消费时,必须按照顺序消费才有意义,与此同时多笔订单之间又是可以并行消费的. 如何保证消息顺序消费? ...
最新文章
- OpenAI探索机器人模拟训练新方法:仿真与真实世界无缝衔接
- pyecharts x轴全显示_超详细Pyecharts 1.x 教程,让你的图表动起来
- fms3 NetConnection.Connect.Rejected 问题
- java13种技术_JavaEE的13种核心技术
- 豆瓣9.6分!再一次被BBC的纪录片震惊!
- cacti的安装和配置
- dbcc 删除日志_有用的DBCC日志命令
- ”消费全返“是割韭菜,非也,广告电商引领全新“全返”模式
- 用CHATGPT做微信视频号和抖音大神,就这几步!
- vi中方向键和删除键
- react 监听键盘事件及多按键事件
- 如何用数学课件制作工具绘制函数图像
- Unity下载文件并显示进度
- Unity SKFramework框架(二十五)、RSA算法加密、签名工具 RSA Crypto
- 浅谈我的建站经验之导航设置
- 互联网办公地点搬迁(北上深杭)
- 图片放大不清晰怎么办?​无损放大可解决
- java中new一个对象要经历哪些过程
- process lasso 优化原理
- 用友软件首席架构师 黄义璋
热门文章
- 如何让CentOS8虚拟机与主机相互Ping通
- 数据库笔记03:管理数据表中的数据
- 【BZOJ3669】【codevs3314】魔法森林,写作LCT,读作SPFA
- 【BZOJ2659】算不出的算式,打表找规律
- cli dll打包 vue_vue-cli3使用 DllPlugin 实现预编译提升构建速度
- mysql 空字符串_NULL与MySQL空字符串的区别
- bzoj2286 [Sdoi2011]消耗战 单调栈+lca
- 20178.27 万径人踪灭 思考记录
- 【英语学习】【Level 08】U04 What I love L5 Breathe in, breathe out
- 三级网络技术_中小型网络系统总体规划与设计方法