《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、Ro
cketMQ学习方法之我见 | |

扫帚不到,灰尘不会自己跑掉

没弄懂的知识,我们不去学它,使用时还是不知其所以然。这正如地上的灰尘,扫帚不到,灰尘是不会自己跑掉的。

在长期的咨询过程发现一个现象,一个知识点,应届毕业生有问、工作3、4年的工程师在问、工作10年以上的专家也有在问。例如:广播消费和集群消费有什么区别?一个消费组订阅多个Tag的情况,多个Tag用||分割,在同一个消费组中一个消费者订阅TagA,同一个消费组的另外一个消费者订阅了TagB,为什么只能收到一部分消息?RocketMQ和Kafka有什么区别?类似的问题会一直重复下去,周而复始直到你把它研究了、学习了、搞明白为止。

我们应该学什么?

如果发散开来要学的东西太多了,感觉怎么学也学不完。所以要事为先,先学工作中绕不开的知识,RocketMQ如果在你公司中有使用或者既将使用,作为一个公司核心业务流转的基础设施组件,RocketMQ是绕不开的。业务开发使用、测试使用、运维同学也在使用。

我们应该怎么学?

自己关起门来搞研究,一个是精力有限,另一个是缺少实战环境验证,学习效率也较低。像国家要引进西方发达国家先进技术、派遣留学生一样,如果能从别人踩过的坑、实战的总结中学习吸收,在实践中小心求证,发展成为自己的知识体系,不愧为一个高效的学习路径。瓷实的作者团队相信能给你一个很高的起点。

唯有坚持不懈!

在面试中我们看到一个现象,有的同学985学校毕业,有一个很好的起点和光环,工作多年后发现技术没有亮点、行业深度也缺少积累;有的同学毕业普通二本甚至专科学校,工作多年后,在其身上却发现了某个技术领域研究很深或者行业知识研究很深。这种现象究其原因是在常年累月的工作中是否能坚持学习,就像丁威老师的座右铭一样唯有坚持不懈,持续不断学习、久久为功才是不断提升自己的终极法宝。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值