书籍详情

RocketMQ实战

RocketMQ实战

作者:丁威 梁勇

出版社:人民邮电出版社

出版时间:2022-08-01

ISBN:9787115596857

定价:¥99.80

购买这本书可以去
内容简介
  RocketMQ 是一款高性能、高吞吐量、低延迟的消息中间件。数年来,RocketMQ 承载了阿里“双十一”的大部分业务,并凭借其优秀性能得到了架构师的青睐,成为互联网行业的消息中间件。本书从使用场景入手,介绍如何使用RocketMQ,使用过程中会遇到什么问题,如何解决这些问题,以及为什么可以这样解决。本书强调实战与理论结合,将原理穿插在实战中讲解,旨在让每一位RocketMQ初学者通过对本书的学习,快速“升级打怪”,成为RocketMQ 领域的佼佼者。
作者简介
  (待更新)丁威,《RocketMQ技术内幕》联合作者,热衷于中间件领域的技术分享,维护“中间件兴趣圈”公众号,荣获RocketMQ官方社区优秀布道师、CSDN2020博客执之星Top2等荣誉称号。目前担任中通快递技术平台部资深架构师,主要负责全链路压测、消息中间件、数据同步等产品的研发与落地,拥有千亿级消息集群的运维经验,不仅实践经验丰富,而且对其源代码有深入且系统的研究。梁勇,哈啰出行高级技术专家,负责服务框架和消息平台,参与了《RocketMQ技术内幕》审稿工作。专注后端中间件方向,公众号“瓜农老梁”维护者。
目录
第 1章 认识Apache RocketMQ 1
1.1 RocketMQ 快速入门 1
1.1.1 下载安装包 1
1.1.2 启动服务 2
1.1.3 创建主题 3
1.1.4 创建消费组 3
1.1.5 发送消息 4
1.1.6 消费消息 4
1.1.7 调试RocketMQ 4
1.2 基本术语 7
1.2.1 消息相关术语 7
1.2.2 主题相关术语 8
1.2.3 消费相关术语 9
1.3 RocketMQ 架构设计 10
1.3.1 物理部署结构 10
1.3.2 高吞吐量与低延迟的权衡 11
1.3.3 高并发读写 11
1.3.4 高可用性与伸缩性 12
1.3.5 高可靠存储 12
1.4 RocketMQ的典型使用场景 12
1.4.1 消息通道 12
1.4.2 削峰填谷 13
1.4.3 顺序消费场景 13
1.4.4 广播消费场景 13
1.4.5 事务消息场景 13
1.5 本章小结 13
第 2章 RocketMQ消息发送 14
2.1 详解消息发送API 14
2.1.1 发送接口分类 15
2.1.2 集群管理接口说明 16
2.1.3 客户端配置说明 17
2.1.4 DefaultMQProducer 参数说明 18
2.2 重要参数与实战建议 18
2.2.1 发送重试机制 18
2.2.2 延迟故障规避 19
2.2.3 ClientId的使用陷阱 20
2.2.4 客户端日志注意事项 24
2.3 消息发送的典型使用方式 25
2.3.1 发送示例详解 25
2.3.2 发送队列选择 26
2.3.3 通过指定消息Key发送 28
2.3.4 通过指定消息tag 发送 29
2.3.5 消息msgId 详解 30
2.4 消息发送的常见错误 31
2.4.1 找不到主题路由信息 31
2.4.2 消息发送超时 34
2.4.3 系统繁忙 36
2.5 本章小结 40
第3章 RocketMQ消息消费 41
3.1 消息消费概述 41
3.1.1 消费队列负载机制与重平衡 42
3.1.2 并发消费模型 42
3.1.3 消费进度提交机制 43
3.2 消息消费API与版本的演变说明 45
3.2.1 消息消费类图 45
3.2.2 消息消费API 简单使用示例 49
3.2.3 消息消费API版本的演变说明 52
3.3 DefaultMQPushConsumer的核心参数与工作原理 53
3.3.1 DefaultMQPushConsumer核心参数与工作原理 53
3.3.2 消息消费队列负载算法 55
3.3.3 PUSH 模型的消息拉取机制 58
3.3.4 消息消费进度提交 59
3.4 DefaultMQPushConsumer使用示例与注意事项 60
3.4.1 ConsumeFromWhere的注意事项 60
3.4.2 基于多机房的队列负载算法 62
3.4.3 消费组线程数设置注意事项 66
3.4.4 批量消费注意事项 67
3.4.5 订阅关系不一致导致消息丢失 70
3.4.6 消费者ClientId 不导致不消费 72
3.4.7 消费重试次数设置 73
3.4.8 分区消费不均衡问题 74
3.5 DefaultLitePullConsumer 核心参数与实战 75
3.5.1 DefaultLitePullConsumer类图 75
3.5.2 DefaultLitePullConsumer简单使用示例 80
3.5.3 Lite PULL 与 PUSH模式的对比 80
3.5.4 长轮询实现原理 81
3.6 结合实际场景再聊DefaultLitePullConsumer 的使用 83
3.6.1 场景描述 83
3.6.2 PUSH 与PULL 模式选型 83
3.6.3 方案设计 83
3.6.4 代码实现与代码解读 84
3.7 结合实际场景顺序消费、消息过滤实战 91
3.7.1 顺序消费 91
3.7.2 消息过滤实战 95
3.8 消息消费积压问题的排查实战 97
3.8.1 问题描述 97
3.8.2 问题分析与解决方案 98
3.8.3 线程栈分析经验 101
3.8.4 RocketMQ 消费端的限流机制 101
3.8.5 RocketMQ 服务端性能自查技巧 103
3.9 本章小结 104
第4章 rocketmq-spring 框架 105
4.1 rocketmq-spring 框架简介 105
4.2 使用案例 106
4.2.1 引入依赖包 106
4.2.2 如何使用消息发送 107
4.2.3 消息消费使用示例 112
4.3 本章小结 114
第5章 RocketMQ的设计原理 115
5.1 Name Server的设计理念 115
5.1.1 路由注册、剔除机制 115
5.1.2 Name Server 设计的“缺陷” 117
5.2 消息发送 120
5.2.1 消息发送高可用机制 120
5.2.2 同步复制 122
5.2.3 事务消息 124
5.2.4 服务端线程模型 126
5.2.5 服务端快速失败机制 127
5.3 消息存储 128
5.3.1 存储文件布局 128
5.3.2 顺序写 137
5.3.3 内存映射与页缓存 137
5.3.4 内核级读写分离 138
5.3.5 刷盘机制 140
5.3.6 文件恢复 143
5.3.7 零拷贝 147
5.4 消息消费 147
5.4.1 并发消费拉取模型 147
5.4.2 消费进度管理机制 150
5.4.3 消息过滤 151
5.4.4 顺序消费 152
5.4.5 延迟消息 153
5.4.6 消费端限流机制 154
5.4.7 服务端限流机制 155
5.5 集群 156
5.5.1 主从同步 157
5.5.2 主从切换 159
5.5.3 长轮询机制 165
5.5.4 消息轨迹 165
5.6 本章小结 168
第6章 RocketMQ 线上环境部署 169
6.1 集群资源规划 169
6.1.1 硬件资源选择 169
6.1.2 集群架构选择 170
6.2 Name Server 集群搭建 171
6.2.1 启动与关闭 171
6.2.2 堆内存自定义 172
6.2.3 生产环境建议 172
6.3 Master-Slave主从架构集群搭建 172
6.3.1 Master 节点修改配置 172
6.3.2 Slave 节点修改配置 174
6.3.3 调整日志路径 175
6.3.4 JVM 内存分配 175
6.3.5 节点启动与关闭 175
6.4 搭建多副本集群 176
6.4.1 多副本集群搭建 176
6.4.2 重新选主 178
6.4.3 参数说明 178
6.4.4 多副本结语 178
6.5 RocketMQ-Console 安装 179
6.6 参数调优 180
6.6.1 Broker 参数调优 180
6.6.2 系统参数调优 181
6.7 本章小结 183
第7章 RocketMQ 运维实战 184
7.1 运维命令汇总 184
7.1.1 集群命令汇总 184
7.1.2 主题命令汇总 186
7.1.3 消费组命令汇总 189
7.1.4 Broker 命令汇总 192
7.1.5 消息命令汇总 198
7.2 集群性能压力测试 202
7.2.1 压力测试脚本参数说明 203
7.2.2 性能压力测试实战记录 203
7.3 集群平滑升级与扩缩容 214
7.3.1 优雅摘除节点 214
7.3.2 平滑扩缩容 215
7.3.3 注意事项 217
7.4 查询死信队列消息内容 218
7.5 本章小结 220
第8章 RocketMQ 监控与治理 221
8.1 监控设计理念 221
8.2 集群核心监控项 222
8.2.1 监控项设计 222
8.2.2 监控开发实战 224
8.3 主题消费组核心监控项 228
8.3.1 监控项设计 229
8.3.2 监控开发实战 230
8.4 告警设计与实战 242
8.4.1 告警项设计 242
8.4.2 告警开发实战 244
8.5 本章小结 248
第9章 RocketMQ 高并发编程技巧 249
9.1 读写锁使用场景 249
9.2 信号量使用技巧 251
9.3 同步转异步编程技巧 254
9.4 CompletableFuture 使用技巧 255
9.5 Netty网络编程 258
9.5.1 Netty网络编程要点 262
9.5.2 线程隔离机制 271
9.6 本章小结 272
第 10章 消息方案案例 273
10.1 消息流量隔离方案 273
10.2 任意时间消息延迟方案 275
10.3 消息资源容灾迁移方案 277
10.3.1 集群同城跨可用区部署 277
10.3.2 资源迁移设计 278
10.4 跨集群复制方案设计 279
10.5 本章小结 280
第 11章 生产环境故障回顾 281
11.1 集群节点进程神秘消失 281
11.1.1 现象描述 281
11.1.2 原因分析 281
11.1.3 解决方法 282
11.2 节点CPU 突刺故障排查 282
11.2.1 现象描述 282
11.2.2 原因分析 295
11.2.3 解决办法 285
11.3 集群频繁抖动与发送超时 285
11.3.1 现象描述 285
11.3.2 原因分析 287
11.3.3 解决办法 288
11.4 客户端消费性能低 288
11.4.1 现象描述 288
11.4.2 原因分析 288
11.4.3 解决办法 289
11.5 消费队列阻塞应急处理 289
11.5.1 现象描述 289
11.5.2 原因分析 290
11.5.3 解决办法 292
11.6 本章小结 293
猜您喜欢

读书导航