前言

RocketMQ版本:4.8
Consumer类型:DefaultMQPushConsumer

原理解析

consumer 启动时做了哪些事情?

  1. 定时从NameSrv获取最新的Topic+Queue+Broker路由信息,获取频率默认30秒,可以通过参数 pollNameServerInterval 进行设置

  2. 创建类型为LinkedBlockingQueue的队列pullRequestQueue,用于存放PullRequest请求对象。

  3. 创建线程RebalanceService,主要用于执行负载均衡。 默认根据平均分配原则,为当前consumer分配对应数量的queue。随后遍历queue分别创建PullRequest,放入队列pullRequestQueue。

    PS:这项工作默认20秒执行一次,可以通过System.setProperty(“rocketmq.client.rebalance.waitInterval”) 修改

    Queue分配完毕后,如果线程是第一次运行,会向Broker发送请求获取当前Consumer对应每个Queue的消费进度。取值结果受Consumer消费策略 consumeFromWhere 影响,默认是获取上次消费的进度。

  4. 创建线程PullMessageService,不断地从pullRequestQueue拉取数据。取到PullRequest就通过Netty发送类型为RemotingCommand的消息,code=RequestCode.PULL_MESSAGE

深入理解RocketMQ:Consumer消费消息原理相关推荐

  1. Kafka学习(十)--Kafka消费者Consumer消费消息配置实战

    一. Kafka消费者Consumer消费消息配置实战 配置: public static Properties getProperties() {Properties props = new Pro ...

  2. RocketMq : 消费消息的两种方式 pull 和 push

    文章目录 1.概述 两种方式的优缺点对比: push pull 1.概述 原创在:https://blog.csdn.net/zhangcongyi420/article/details/905483 ...

  3. RocketMQ(九):rocketMQ设计的全链路消息零丢失方案?+rocketmq消息中间件事务消息机制的底层实现原理?+half是什么?+half消息是如何对消费者不可见的?

    前言: 目前rocketmq更新已经更新了11篇博客了,预计接下来的2-3篇是暂时的更新进度了,准备更新一下springboot或者是jvm,mysql相关的专题出来,后续更新完事后,再分享一些实战性 ...

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

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

  5. 分布式事务:RocketMQ实现分布式事务原理

    之前讲过有关分布式事务2PC.3PC.TCC的理论知识,博客地址: 1.分布式事务(1)---2PC和3PC原理 2.分布式事务(2)---TCC原理 这篇讲有关RocketMQ实现分布式事务的理论知 ...

  6. 深入剖析 RocketMQ 源码 - 消息存储模块

    作者:vivo互联网服务器团队-Zhang Zhenglin 一.简介 RocketMQ 是阿里巴巴开源的分布式消息中间件,它借鉴了 Kafka 实现,支持消息订阅与发布.顺序消息.事务消息.定时消息 ...

  7. rocketmq 重复消费_RocketMQ的十二个特性,你都知道吗「下」

    接上文,今天继续. 9 消息重试 Consumer消费消息失败后,要提供一种重试机制,令消息再消费一次.Consumer消费消息失败通常可以认为有以下几种情况: 由于消息本身的原因,例如反序列化失败, ...

  8. 可消费消息数量_17 个方面,综合对比 主流消息队列

    一.资料文档 二.开发语言 三.支持的协议 四.消息存储 五.消息事务 六.负载均衡 七.集群方式 八.管理界面 九.可用性 十.消息重复 十一.吞吐量TPS 十二.订阅形式和消息分发 十三.顺序消息 ...

  9. activemq nodejs stomp 重连机制_5分钟优劣分析 Kafka、RabbitMQ、RocketMQ、ActiveMQ消息队列...

    一.资料文档 Kafka:中,有kafka作者自己写的书,网上资料也有一些. rabbitmq:有一些不错的书,网上资料多. zeromq:少.没有专门写zeromq的书,网上的资料多是一些代码的实现 ...

最新文章

  1. 一分钟就可以轻松将文字转换成语音,简单方法讲解
  2. 产品网络推广方案之网站SEO优化如何“讨好”用户,降低网站跳出率?
  3. 基于MATLAB的面向对象编程(5)——对象的保存(save)和载入(load)
  4. T511K表之工资常量SIINS的用途
  5. 基于FPGA实现DAC8811接口(正弦波)
  6. 计算机 64位和32位区别,32位和64位的区别
  7. QEMU 源代码阅读经验开山之作
  8. C#判断当前运行环境是否64bit
  9. 思科模拟器叫什么_宇宙无敌上帝视角无所不能之星球生成模拟器。
  10. 我是直接学Swift还是Objective-C?
  11. wav文件头修复_贴唱混音之二——音频修复
  12. 排序算法之十 希尔排序(C++版本)
  13. 廖雪峰java教程 pdf_廖雪峰java学习笔记.pdf
  14. 电子报纸的分析即制作
  15. java基础学安卓开发_Android开发学习路线之Java基础学习
  16. 服务器千兆网卡芯片,Intel 82574L and 82576 千兆网卡芯片区别.pdf
  17. ubuntu lotus testnet-staging
  18. 各类证件类型的格式校验
  19. Java继承的综合案例——群主发红包
  20. 两年保存的网页标签分享

热门文章

  1. SAP修改已经释放的请求
  2. ABAP-在SMARTFORMS中取消使用WORD作为编辑器
  3. SAP实施方法论之探讨-现状调研与需求分析
  4. 常用的SAP系统FM
  5. ABAP 几个文件相关的函数
  6. python中的字符串是什么,一文秒懂Python中的字符串
  7. linux php后门,Linux_一个初级的linux后门制作方法,众所周知,Linux的文件权限如: - phpStudy...
  8. 右键菜单无响应_给电脑添加右键菜单重启资源管理器,让电脑不再死机!
  9. mysql ddl dcl_MySQL常用DDL、DML、DCL语言整理(附样例)
  10. 修改 oracle dbid,更改数据库DBID