《RocketMQ实战专栏》为什么是你学习RocketMQ的最佳资料
Posted 中间件兴趣圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《RocketMQ实战专栏》为什么是你学习RocketMQ的最佳资料相关的知识,希望对你有一定的参考价值。
《RocketMQ实战与原理》专栏简介
简介
RocketMQ业界主流的消息中间件之一,承载公司核心业务消息的流转。对RocketMQ核心原理的理解与最佳实践成了开发与运维同学的必备技能。听很多同学抱怨,在学习中苦于缺少参考资料、遇到问题缺少专家指点、看源码掉入细节耗费大量时间精力、缺乏指引的最佳实践。
我们在使用RocketMQ发送时会碰到System busy、Broker busy,导致发送超时。发生这种现象的背后原理是怎样的?我们有什么解决方案?
一个消费组订阅多个Tag的情况,多个Tag用||分割,在同一个消费组中一个消费者订阅TagA,同一个消费组的另外一个消费者订阅了TagB。请问这么用有什么问题?背后的原理是什么?这种情况在咨询中问的同学很多。
RocketMQ的平稳运行离不开正确的调优、运维、监控、告警。对RocketMQ的治理我们应该从哪里入手?平滑扩所容的正确姿势是怎么样的?监控项的设计应该从哪些方面?
所有这些实战中可能碰到的坑,你都将从本专栏中找到原理讲解和正确使用方式。
专栏详情地址:https://blog.csdn.net/prestigeding/category_10520815.html
专栏亮点
1.作者团队瓷实
由《RocketMQ技术内幕》作者丁威老师执笔编写核心原理和设计思想,讲解通透严谨,核心知识点提供最佳实践代码。
由在消息领域实战多年的梁勇老师负责编写运维实战部分,手把手教你如何做集群压测、调优、平滑运维、监控、告警设计。
两位作者均通读熟悉RocketMQ核心源码、并在消息领域实战多年。
2.实战心得提炼
两位作者将多年的RocketMQ积累心得提炼总结,从原理到代码最佳实践全方位指引。提升学习效率、少走弯路、事半功倍。
3.图文并貌讲解
知识原理讲解采用图文并貌的方式,并将原理穿插道实战中,读者在轻松学习中获取知识,提升学习获得感、成就感。
4.高阶职位进阶
除了能掌握RocketMQ的知识外,你将对RocketMQ背后设计思想深入学习,RocketMQ治理体系的设计了然于胸。成为消息领域的技术专家。
读者将获得什么?
掌握RocketMQ核心原理与实践
掌握RocketMQ集群运维监控技能
掌握RocketMQ编程技巧与设计思想
目标读者
RocketMQ的初学者
JAVA中高级工程师
RocketMQ运维工程师
想成为消息领域技术专家的从业者
作者简介
丁威,《RocketMQ技术内幕》作者、RocketMQ社区优秀布道师、CSDN技术专家,『中间件兴趣圈』公众号维护者,现担任中通快递研发中心资深架构师。
梁勇,哈啰出行高级技术专家,负责服务框架&消息平台,参与了《RocketMQ技术内幕》审稿工作。专注后端中间件方向,在公众号『瓜农老梁』陆续发表80余篇。
作者照片
正面照,设计师将依此为作者设计卡通肖像。
专栏结构
专栏从使用场景入手介绍如何使用RocketMQ,使用过程中遇到什么问题,如何解决这些问题,以及为什么可以这样解决,即原理讲解(图)穿插在实战中。总共分为三个部分:应用篇、运维篇、编程进阶篇。
专栏的设计思路重在强调实战二字,旨在让一位RocketMQ初学者通过对本专栏的学习,快速“打怪升级”,理论与实战结合,成为该领域的佼佼者。专栏共分为应用篇、运维篇、编程技巧篇。
应用篇:介绍如何使用RocketMQ,使用过程中遇到什么问题,如何解决这些问题,以及为什么可以这样解决,即原理讲解(图)穿插在实战中。
运维篇:从运维角度,从对集群的管理方面角度切入,分享日均消息流转千亿级别的运维日常工作。
编程技巧篇:深入学习RocketMQ,不仅能在工作中更好的驾驭RocketMQ,作为一款高性能的分布式消息中间件,在编程方面有很多地方值得我们学习与借鉴,对快速提升编程能力有莫大的好处。
部分 | 文章 | 大纲 |
---|---|---|
应用篇 | 1、搭建学习环境(准备篇) | 1.1、Linux安装RocketMQ、RocketMQ-Console |
1.2、IDEA中安装RocketMQ | ||
2、RocketMQ核心概念扫盲篇 | 2.1、RocketMQ部署架构 | |
2.2、消息订阅模型 | ||
2.3、事务消息 | ||
2.4、定时消息 | ||
2.5、消息过滤 | ||
3、消息发送API详解与版本变迁说明 | 3.1、消息发送API详解 | |
3.2、消息发送API简单使用示例 | ||
3.3、消息发送API版本演变说明 | ||
4、结合实际应用场景谈消息发送 | 4.1、消息发送方式 | |
4.2、队列选择机制 | ||
4.3、RocketMQ Key 的使用场景 | ||
4.4、RocketMQ tag 使用场景 | ||
4.5、RocketMQ msgId 详解 | ||
5、消息发送核心参数与工作原理详解 | 5.1、DefaultMQProducer参数一览 | |
5.2、ClientConfig参数一览 | ||
5.3、核心参数工作机制与使用建议 | ||
6、消息发送常见错误与解决方案 | 6.1、No route info of this topic | |
6.2、消息发送超时 | ||
6.3、System busy、Broker busy | ||
7、事务消息使用及方案选型思考 | 7.1、事务消息应用场景 | |
7.2、RocketMQ事务消息原理 | ||
7.3、事务消息实战 | ||
7.4、事务消息架构思考 | ||
8、消息消费API与版本变迁说明 | 8.1、消息消费类图 | |
8.2、消息消费API简单使用示例 | ||
8.3、消息消费API版本演变说明 | ||
9、DefaultMQPushConsumer核心参数与工作原理 | 9.1、DefaultMQPushConsumer核心参数一览与内部原理 | |
9.2、消息消费队列负载算法 | ||
9.3、PUSH模型消息拉取机制 | ||
9.4、消息消费进度提交 | ||
10、DefaultMQPushConsumer使用示例与注意事项 | 10.1、ConsumeFromWhere注意事项 | |
10.2、基于多机房队列负载算法 | ||
10.3、消费组线程数设置注意事项 | ||
10.4、批量消费注意事项 | ||
10.5、订阅关系不一致导致消息丢失 | ||
10.6、消费者clientId不唯一导致不消费 | ||
11、DefaultLitePullConsumer核心参数与实战 | 11.1、DefaultLitePullConsumer类图 | |
11.2、DefaultLitePullConsumer简单使用示例 | ||
11.3、Lite Pull与PUSH模式之对比 | ||
11.4、长轮询实现原理 | ||
12、结合实际场景再聊DefaultLitePullConsumer的使用 | 12.1、场景描述图 | |
12.2、PUSH与PULL模式选型 | ||
12.3、方案设计 | ||
12.4、代码实现与代码解读 | ||
13、结合实际场景顺序消费、消息过滤实战 | 13.1、顺序消费(场景描述、代码实现、原理解读) | |
13.2、消息过滤实战(场景描述、技术方案、代码实现) | ||
14、消息消费积压问题排查实战 | 14.1、问题描述 | |
14.2、问题分析与解决方案 | ||
14.3、线程栈分析经验 | ||
14.4、RocketMQ消费端限流机制 | ||
14.5、RocketMQ服务端性能自查技巧 | ||
运维篇 | 15、RocketMQ常用命令实战 | 15.1、集群命令汇总 |
15.2、主题命令汇总 | ||
15.3、消费组命令汇总 | ||
15.4、Broker命令汇总 | ||
15.5、消息命令汇总 | ||
16、RocketMQ集群性能摸高 | 16.1、前言 | |
16.2、压测脚本 | ||
16.3、摸高实战 | ||
16.4、总结 | ||
17、RocketMQ集群性能调优 | 17.1、前言 | |
17.2、系统参数调优 | ||
17.3、集群参数调优 | ||
18、RocketMQ集群平滑运维 | 18.1、前言 | |
18.2、优雅摘除节点 | ||
18.3、平滑扩所容 | ||
19、RocketMQ集群监控(一) | 19.1、前言 | |
19.2、监控项设计 | ||
19.3、监控开发实战 | ||
20、RocketMQ集群监控(二) | 20.1、前言 | |
20.2、监控项设计 | ||
20.3、监控开发实战 | ||
21、RocketMQ集群告警 | 21.1、前言 | |
21.2、告警项设计 | ||
21.3、告警实战开发 | ||
22、RocketMQ集群踩坑记 | 22.1、集群节点进程神秘消失 | |
22.2、Master节点CPU莫名飙高 | ||
22.3、集群频繁抖动发送超时 | ||
22.4、用了此属性消费性能下降一半 | ||
23、消息轨迹、ACL与多副本搭建 | 23.1 消息轨迹 | |
23.2 ACL | ||
23.3 多副本搭建 | ||
24、RocketMQ-Console常用页面指标获取逻辑 | ||
编程技巧篇 | 25、RocketMQ NameServer背后的设计理念 | 25.1 Nameserver工作机制 |
25.2 两种设计注册中心的思路 | ||
25.3 Nameserver数据不一致影响分析 | ||
26、JAVA并发编程实战 | 26.1 读写锁的使用场景 | |
26.2 信号量使用技巧 | ||
26.3 同步转异步编程技巧 | ||
26.4 CompletableFuture编程技巧 | ||
27、从 RocketMQ学基于文件的编程模式(一) | 27.1 消息存储格式看文件编程 | |
27.2 内存映射与页缓存 | ||
27.3 顺序写 | ||
27.4 引用计数器 | ||
28、从 RocketMQ学基于文件的编程模式(二) | 28.1 同步刷盘、异步刷盘 | |
28.2 文件恢复机制 | ||
28.3 Java如何使用零拷贝 | ||
29、从RocketMQ学Netty网络编程技巧 | 29.1 从整个类体系看网络设计 | |
29.2 Netty 网络编程要点 | ||
29.3 线程隔离机制 | ||
30、RocketMQ学习方法之我见 |
扫帚不到,灰尘不会自己跑掉
没弄懂的知识,我们不去学它,使用时还是不知其所以然。这正如地上的灰尘,扫帚不到,灰尘是不会自己跑掉的。
在长期的咨询过程发现一个现象,一个知识点,应届毕业生有问、工作3、4年的工程师在问、工作10年以上的专家也有在问。例如:广播消费和集群消费有什么区别?一个消费组订阅多个Tag的情况,多个Tag用||分割,在同一个消费组中一个消费者订阅TagA,同一个消费组的另外一个消费者订阅了TagB,为什么只能收到一部分消息?RocketMQ和Kafka有什么区别?类似的问题会一直重复下去,周而复始直到你把它研究了、学习了、搞明白为止。
我们应该学什么?
如果发散开来要学的东西太多了,感觉怎么学也学不完。所以要事为先,先学工作中绕不开的知识,RocketMQ如果在你公司中有使用或者既将使用,作为一个公司核心业务流转的基础设施组件,RocketMQ是绕不开的。业务开发使用、测试使用、运维同学也在使用。
我们应该怎么学?
自己关起门来搞研究,一个是精力有限,另一个是缺少实战环境验证,学习效率也较低。像国家要引进西方发达国家先进技术、派遣留学生一样,如果能从别人踩过的坑、实战的总结中学习吸收,在实践中小心求证,发展成为自己的知识体系,不愧为一个高效的学习路径。瓷实的作者团队相信能给你一个很高的起点。
唯有坚持不懈!
在面试中我们看到一个现象,有的同学985学校毕业,有一个很好的起点和光环,工作多年后发现技术没有亮点、行业深度也缺少积累;有的同学毕业普通二本甚至专科学校,工作多年后,在其身上却发现了某个技术领域研究很深或者行业知识研究很深。这种现象究其原因是在常年累月的工作中是否能坚持学习,就像丁威老师的座右铭一样唯有坚持不懈,持续不断学习、久久为功才是不断提升自己的终极法宝。
以上是关于《RocketMQ实战专栏》为什么是你学习RocketMQ的最佳资料的主要内容,如果未能解决你的问题,请参考以下文章
精华推荐 | 深入浅出RocketMQ原理及实战「底层原理挖掘系列」透彻剖析贯穿RocketMQ的存储系统的实现原理和持久化机制