关键词:
《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学校毕业,有一个很好的起点和光环,工作多年后发现技术没有亮点、行业深度也缺少积累;有的同学毕业普通二本甚至专科学校,工作多年后,在其身上却发现了某个技术领域研究很深或者行业知识研究很深。这种现象究其原因是在常年累月的工作中是否能坚持学习,就像丁威老师的座右铭一样唯有坚持不懈,持续不断学习、久久为功才是不断提升自己的终极法宝。
《机器学习算法分类讲解与kaggle实战》专栏概述
spark机器学习实战-专栏介绍
前言目前国内关于Spark机器学习实战的优质资料比较欠缺,很多文章抄来抄去,写的不清不楚,随着Spark技术生态的成熟,很多公司都把它作为大数据处理的框架,但是在实际应用中,难免遇到很多的坑。... 查看详情
精华推荐|深入浅出rocketmq原理及实战「底层原理挖掘系列」透彻剖析贯穿rocketmq的存储系统的实现原理和持久化机制
RocketMQ的发展历史RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。2016年11月28日,阿里巴巴向广西党性培训Apache软件基金会捐赠RocketMQ,成为Apache孵化项目。2017年9月25日,Apache宣布Rock... 查看详情
《自动驾驶中的深度学习模型量化部署加速实战》专栏概述|实战教程,开放源码
这里主要是针对AI算法落地的模型部署,其中有基于TensorRT的部署、基于OpenCV+CUDA的部署以及基于NCNN的部署,项目包括简单的demo案例、目标检测、语义分割、实例分割、车道线检测以及Transformer等。大家可以参考以下的链接进行... 查看详情
阿里资深架构推荐:rocketmq实战与原理解析。
...的日志传输领域到后来阿里集团全维度在线业务的支撑,RocketMQ被广泛用于交易、数据同步、缓存同步、IM通讯、流计算、IoT等场景。在双11全球狂欢节中,RocketMQ以万亿级的消息总量支撑了全集团3000多个应用,为复杂的业务场景... 查看详情
unity实战100例教程专栏《导航帖》,带你深入学习unity实战经验(代码片段)
目录📣前言⌚️引擎实用技能实战篇⌚️趣味小Demo篇⌚️接入平台SDK篇⌚️实用软件制作篇🎅总结🚀往期优质文章分享【游戏开发爱好者社区】活动进行中,每周打卡送书籍等礼品,期待你的加入📣前... 查看详情
unity实战100例教程专栏《导航帖》,带你深入学习unity实战经验(代码片段)
目录📣前言⌚️引擎实用技能实战篇⌚️趣味小Demo篇⌚️接入平台SDK篇⌚️实用软件制作篇🎅总结🚀往期优质文章分享【游戏开发爱好者社区】活动进行中,每周打卡送书籍等礼品,期待你的加入📣前... 查看详情
一数据库开发与实战专栏导学及数据库基础概念入门(代码片段)
...展阶段2.3数据库、关系型数据库、非关系型数据库概念2.4为什么要使用数据库2.5数据库系统及其组成部分2.6常用数据库访问接口简介2.7数据库的种类2.8作为初学者必须要了解的几种常用数据库三、数据库入门小测验3.1选择题3.2选... 查看详情
rocketmq入门到精通—rocketmq学习入门指南|精讲rocketmq是什么
...源经历了6个月的失踪,我将带着干货终究归来!【RocketMQ入门到精通】前提概要RocketMQ是一个统一消息引擎、轻量级数据处理平台。RocketMQ是一款阿里巴巴开源的消息中间件。2016年11月28日,阿里巴巴向广西党性培训Apache... 查看详情
springboot实战项目整合阿里云rocketmq消息队列实现发送普通消息,延时消息(代码片段)
...送普通消息,延时消息--附代码-学不会丶-博客园一.为什么选择RocketMQ消息队列?(可跳过看三的整合代码实例)首先RocketMQ是阿里巴巴自研出来的,也已开源。其性能和稳定性从双11就能看出来,借用阿里... 查看详情
〖python网络爬虫实战⑤〗-session和cookie介绍(代码片段)
...节,我们学习了代理的基本原理,以及,我们为什么要配置代理,它的作用是什么。本文,我们了解一下。什么是Session和Cookie,以及他们的作用是什么。⭐️Session和Cookie 我们在访问一些 查看详情
rocketmq实战
...巴有2大核心的分布式技术,一个是OceanBase,另一个就是RocketMQ。在实际项目中已经领教过RocketMQ的强大,本人计划写一个RocketMQ实战系列,将涵盖RocketMQ的简介,环境搭建,初步使用、API详解、架构分析、管理员集群操作等知识。... 查看详情
rocketmq实战
在上一篇《RocketMQ实战(一)》中已经为大家初步介绍了下RocketMQ以及搭建了双Master环境,接下来继续为大家介绍!QuickStart写一个简单的生产者、消费者,带大家快速体验RocketMQ~Maven配置:650)this.width=650;"src="https://s5.51cto.com/wyfs02/... 查看详情
rocketmq双主双从同步写安装部署
1,机器ip软件版本jdk-8u131-linux-x64.tar.gzrocketmq-all-4.2.0-bin-release.ziprocketmq-console-ng-1.0.0.jar10.15.10.238HNVM015238nameserver1rocketmq-masterarocketmq-slaveb10.15.10.239HNVM015239nameserver2rock 查看详情
redis从入门到实战(一redis简介)
...⭐代表教程:SpringBoot+vue-element开发个人博客项目实战教程⭐专栏内容:Redis从入门到实战、个人博客系统文章目录1、NoSQL1.1、什么是NoSQL?1.2、NoSQL特点1.3、分类... 查看详情
tensorflow2深度学习实战(十七):目标检测算法fasterr-cnn实战
前言:本专栏以理论与实战相结合的方式,左手看论文,右手敲代码,带你一步步吃透深度学习原理和源码,逐一攻克计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub仓库更新... 查看详情
小白兔快开门,我是你爸爸。web安全基础入门—访问控制漏洞和权限提升(代码片段)
...全高级-综合利用》知识点全面细致,逻辑清晰、结合实战,并配有大量练习靶场,让你读一篇、练一篇,掌握一篇,在学习路上事半功倍,少走弯路!欢迎关注订阅专栏& 查看详情
深度学习100例|第43天:文本卷积神经网络(textcnn)新闻文本分类实战(代码片段)
🚩本文作者:微学AI、K同学啊🥇精选专栏:《深度学习100例》🔥推荐专栏:《新手入门深度学习》📚选自专栏:《Matplotlib教程》🧿优秀专栏:《Python入门100题》大家好,我是K同学啊&... 查看详情