ApacheRocketMQ进阶之路9787111766551
正版图书,可开发票,请放心购买。
¥
93.47
7.9折
¥
119
全新
仅1件
作者林俊杰
出版社机械工业
ISBN9787111766551
出版时间2024-11
装帧其他
开本其他
定价119元
货号32239677
上书时间2024-11-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
ApacheRocketMQCommitter、架构师。从2017年起开始参与RocketMQ社区的工作。曾任职甲骨文、OPPO,现为某头部上市公司后台架构师,拥有11年中间件产品和大型业务后台的双背景研发经历。对海量用户、高并发、多地域容灾等架构设计拥有丰富经验,热衷于技术总结与知识分享。
目录
基础篇
第1章 Apache RocketMQ 综述/
1.1为什么高并发系统都绕不开消息中间件/
1.1.1初识互联网的架构/
1.1.2大型互联网系统遇到的共性挑战/
1.1.3为什么要选择 Apache RocketMQ/
1.2了解 Apache RocketMQ/
1.2.1RocketMQ简介/
1.2.2RocketMQ发展史/
1.2.3RocketMQ在“双十一”的表现/
1.3RocketMQ 核心概念与特性/
1.3.1RocketMQ组件/
1.3.2术语/
1.3.3RocketMQ重要特性/
1.4RocketMQ初体验/
1.4.1安装RocketMQ/
1.4.2启动Name Server/
1.4.3启动Broker/
1.4.4关闭Broker和Name Server/
1.4.5验证收发消息/
1.5本章小结/
1.6思考题/
第2章 RocketMQ 消息生产/
2.1生产者概述/
2.1.1生产者实例/
2.1.2生产者组/
2.2认识RocketMQ消息/
2.2.1消息结构/
2.2.2消息类型/
2.3消息发送实战/
2.3.1发送普通消息/
2.3.2发送批量消息/
2.3.3发送顺序消息/
2.3.4发送延时消息/
2.3.5发送事务消息/
2.4消息的三种发送模型/
2.4.1发送同步消息/
2.4.2发送异步消息/
2.4.3发送单向消息/
2.5生产者最佳实践/
2.5.1不同消息类型的选择/
2.5.2不同消息发送模型的选择/
2.5.3发送消息的实战建议/
2.6本章小结/
2.7思考题/
第3章 RocketMQ消息消费/
3.1消费者概述/
3.1.1消费者实例/
3.1.2消费者组/
3.2初探消费流程/
3.2.1消息存储与消息队列的关系/
3.2.2消息消费与消息队列的关系/
3.3消费实战/
3.3.1Push并发消费/
3.3.2Push顺序消费/
3.3.3Pull Subscribe消费/
3.3.4Pull Assign消费/
3.3.5集群模式与广播模式/
3.3.6标签过滤 /
3.3.7SQL92过滤 /
3.3.8消息重试和死信队列/
3.4消息消费最佳实践/
3.4.1消费日志/
3.4.2消费幂等/
3.4.3提高消费并行度/
3.4.4批量消费方式/
3.4.5大量堆积时跳过历史消息/
3.4.6规范消费者组名/
3.4.7订阅关系保持一致/
3.4.8并发消费和顺序消费的选择/
3.4.9起始消费位点的设置/
3.4.10关于异步消费/
3.4.11消费状态处理/
3.5本章小结/
3.6思考题/
第4章 RocketMQ运维与管理/
4.1RocketMQ Admin Tool/
4.1.1认识RocketMQ管理工具/
4.1.2使用RocketMQ管理工具/
4.2RocketMQ Dashboard/
4.2.1Docker方式安装 RocketMQ Dashboard/
4.2.2源码方式安装 RocketMQ Dashboard/
4.2.3使用 RocketMQ Dashboard/
4.3主题管理实践/
4.3.1主题分类/
4.3.2主题命名/
4.3.3队列数管理/
4.4测试环境实践/
4.4.1独立集群模式/
4.4.2独立主题模式/
4.4.3Tag路由模式/
4.4.4三种模式的优劣对比/
4.5生产环境运维实践/
4.5.1集群扩容/
4.5.2集群迁移/
4.6RocketMQ 常见部署架构/
4.6.1单主模式/
4.6.2主备模式的架构/
4.6.3多主模式的架构/
4.6.4同城灾备模式/
4.7本章小结/
4.8思考题/
原理篇
第5章 RocketMQ消费原理/
5.1理解RocketMQ的推模式/
5.1.1Push 模式/
5.1.2Pull 模式/
5.1.3Push模式与Pull模式的优劣对比/
5.2了解长轮询/
5.2.1短轮询/
5.2.2长轮询/
5.3RocketMQ长轮询实现/
5.3.1客户端增大超时时间/
5.3.2服务端Hold住无数据的请求/
5.3.3RocketMQ长轮询小结/
5.4RocketMQ的消息拉取优化细节/
5.4.1客户端请求异步化/
5.4.2服务端超时处理细节/
5.4.3服务端多线程交互/
5.4.4合并多个 Pull 请求/
5.5消费者线程模型/
5.5.1消费流程涉及的关键线程/
5.5.2消费线程池/
5.6消费进度管理/
5.6.1消费进度存储/
5.6.2初次启动从哪里消费/
5.7消息ACK机制/
5.7.1AT LEAST ONCE保证/
5.7.2消息消费失败进度管理/
5.8消息失败重试设计/
5.8.1重试主题/
5.8.2延迟重试/
5.9消息消费异常处理/
5.9.1消费超时/
5.9.2卡进度的保护处理/
5.9.3消息重发与顺序性的矛盾/
5.10本章小结/
5.11思考题/
第6章 RocketMQ负载均衡与消费模式/
6.1负载均衡综述/
6.2消息生产负载均衡/
6.2.1消息生产负载均衡概述/
6.2.2消息生成负载均衡的原理/
6.3消息消费负载均衡/
6.3.1无中心的队列负载均衡/
6.3.2无中心负载均衡的核心源码/
6.3.3消费者负载均衡策略/
6.4无中心负载均衡带来的弊端/
6.5RocketMQ广播消息原理/
6.5.1JMS的消息类型/
6.5.2主流消息中间件对发布/订阅模式的支持/
6.5.3RocketMQ对发布/订阅模式的支持/
6.5.4广播模式下的可靠性及顺序性处理/
6.6本章小结/
6.7思考题/
第7章 RocketMQ存储设计/
7.1RocketMQ消息存储概览/
7.1.1文件构成/
7.1.2消息存储过程/
7.2RocketMQ存储与检索/
7.2.1RocketMQ存储对比Kafka存储/
7.2.2RocketMQ存储设计对比Kafka的优势/
7.3CommitLog文件/
7.3.1CommitLog文件结构/
7.3.2CommitLog抽象模型/
7.3.3CommitLog文件组成/
7.4ConsumeQueue文件/
7.4.1ConsumeQueue文件结构/
7.4.2ConsumeQueue文件组成/
7.5IndexFile文件/
7.5.1IndexFile概览/
7.5.2IndexFile文件结构/
7.5.3IndexFile文件组成/
7.6本章小结/
7.7思考题/
第8章 RocketMQ消息高可靠的设计/
8.1消息中间件如何做到消息高可靠/
8.1.1消息中间件三个核心环节/
8.1.2消息中间件的高可靠承诺/
8.2消息生产的高可靠/
8.2.1消息生产过程可能遇到的异常/
8.2.2应对消息生产的异常/
8.3消息消费的高可靠/
8.3.1消费高可靠的保证/
8.3.2消费高可靠的实践建议/
8.4消息存储的高可靠/
8.4.1消息刷盘策略/
8.4.2消息同步策略/
8.4.3消息的读写高可用/
8.4.4消息高可靠小结/
8.4.5多副本的DLedger/
8.5本章小结/
8.6思考题/
第9章 RocketMQ消息过滤原理/
9.1认识消息过滤/
9.1.1消息过滤的场景/
9.1.2消息过滤的方式/
9.1.3客户端过滤VS服务端过滤/
9.1.4服务端过滤的必要性/
9.1.5RocketMQ的消息过滤模式/
9.2标签过滤模式的使用及原理/
9.2.1标签过滤模式的使用/
9.2.2标签服务端过滤原理/
9.3类过滤模式原理/
9.4SQL92属性过滤的使用及原理/
9.4.1属性过滤的使用/
9.4.2开启属性过滤/
9.4.3属性过滤的原理/
9.4.4属性过滤可替换类过滤模式/
9.5本章小结/
9.6思考题/
第10章 RocketMQ顺序消息原理/
10.1消息中间件的时序性挑战/
10.2Kafka顺序消息的解决方案/
10.2.1Kafka消息存储和消息投递的顺序性/
10.2.2Kafka消息生产的顺序性/
10.2.3Kafka消息消费的顺序性/
10.3RocketMQ顺序消息的解决方案/
10.3.1RocketMQ的消息存储顺序性实现/
10.3.2RocketMQ的消息生产顺序性实现/
10.3.3RocketMQ的消息消费顺序性实现/
10.4分区顺序VS全局顺序/
10.5RocketMQ顺序消息的缺陷/
10.5.1分区热点问题/
10.5.2扩容与顺序性的冲突/
10.5.3顺序性与可用性的冲突/
10.6本章小结/
10.7思考题/
第11章 RocketMQ事务性消息原理/
11.1分布式场景下的ACID/
11.1.1认识ACID/
11.1.2分布式场景下的事务挑战/
11.2CAP VS BASE/
11.2.1认识 CAP 三角/
11.2.2认识BASE理论/
11.3分布式一致性方案/
11.3.1一致性概念解析/
11.3.2强一致性方案/
11.3.3弱一致性方案/
11.3.4最终一致性方案/
11.4异步队列方案的挑战/
11.4.1场景一:服务重启导致消息发送失败/
11.4.2场景二:服务重启导致消息发送失败/
11.4.3异步队列方案小结/
11.5RocketMQ事务消息的实现/
11.5.1RocketMQ事务消息实现的关键流程/
11.5.2RocketMQ事务消息 VS 可靠消息模式/
11.5.3RocketMQ事务消息的存储/
11.5.4RocketMQ事务回查及状态/
11.6RocketMQ事务消息与Kafka事务消息的对比/
11.6.1Kafka想要解决的Exactly-Once是什么/
11.6.2Kafka事务消息的表现/
11.7本章小结/
11.8思考题/
第12章 RocketMQ延迟消息原理/
12.1互联网场景下延迟任务的常见场景/
12.2使用定时任务处理延迟任务的一些问题/
12.2.1时效性/
12.2.2扫描性能/
12.2.3单一周期处理量问题/
12.3认识RocketMQ延迟消息/
12.3.1RocketMQ延迟消息的优点/
12.3.2RocketMQ 延迟消息的代码示意/
12.4延迟消息实现原理/
12.4.1RocketMQ延迟消息存储实现/
12.4.2RocketMQ延迟消息转存/
12.4.3延迟主题的队列/
12.4.4延迟消息的调度/
12.4.5调度的性能问题/
12.4.6分队列调度解决投递顺序问题/
12.4.7调度的性能优化/
12.4.8调度的延迟/
12.5实现任意精度的定时消息/
12.5.1简易逼近法/
12.5.2最优逼近法模拟任意时刻的定时消息/
12.5.3代理定时消息方案/
12.5.45.x版本定时消息展望/
12.6本章小结/
12.7思考题/
进阶篇
第13章 大型系统中实现消息幂等/
13.1为什么消息中间件的消息会重复/
13.1.1发送的高可靠引起的消息重复/
13.1.2存储的高可靠引起的消息重复/
13.1.3消息投递的高可靠引起的消息重复/
13.2消息幂等/
13.2.1at least once/
13.2.2exactly once/
13.3基于业务逻辑实现消息幂等/
13.3.1基于数据库的去重实现/
13.3.2基于数据库去重的并发问题/
13.3.3加锁解决基于数据库去重的并发问题/
13.3.4乐观锁解决基于数据库去重的并发问题/
13.3.5基于业务逻辑实现消息幂等的局限性/
13.4基于数据库事务的消息表实现消息幂等/
13.4.1基于数据库事务的消息表的实现/
13.4.2基于数据库事务的消息表的局限性/
13.5基于无锁的消息表的通用幂等方案/
13.5.1复杂业务消费场景/
13.5.2基于消息幂等表的非事务方案/
13.5.3消息表的设计/
13.5.4无锁消息表的代码实现/
13.6通用消息幂等的局限性/
13.6.1消费过程的局限性/
13.6.2通用幂等解决方案的价值/
13.6.3关于通用幂等方案的实践建议/
13.7本章小结/
13.8思考题/
第14章 复杂场景下的消息丢失问题/
14.1跨集群场景下消息的丢失问题/
14.1.1多集群使用的场景/
14.1.2多集群场景下消息窜乱揭秘/
14.1.3多集群使用下的最佳实践/
14.2队列分配错误导致的消息丢失/
14.2.1队列分配的奇怪现象/
14.2.2消费者负载均衡的过程/
14.2.3订阅关系不同引发的问题/
14.3标签订阅不同引发的消息丢失/
14.4本章小结/
14.5思考题/
第15章 应对消息大量堆积/
15.1消息堆积发生的原因及影响/
15.1.1消息堆积的场景/
15.1.2消息堆积的危害/
15.2消息堆积了,哪些扩容手段是有用的?/
15.2.1消费者服务扩容对堆积的影响/
15.2.2消费者线程扩容对堆积的影响/
15.2.3Broker队列数扩容/
15.2.4Broker扩容/
15.2.5下游服务扩容/
15.3消息堆积的一些定位手段/
15.3.1定位消费瓶颈/
15.3.2定位数据倾斜/
15.3.3定位队列分配数量/
15.4处理消息堆积的实践建议/
15.4.1快速扩容/
15.4.2快速恢复新消息的消费/
15.4.3恢复历史消息的消费/
15.5预防消息堆积的实践建议/
15.5.1合理地规划消费并行度/
15.5.2避免热点数据/
15.5.3适当丢弃过老的消息/
15.6本章小结/
15.7思考题/
第16章 大型互联网系统双活RocketMQ集群架构/
16.1常见的同城双活后台架构/
16.2同城双机房的RocketMQ部署架构/
16.2.1简单的同城双机房RocketMQ部署架构/
16.2.2同城双机房高可靠的RocketMQ部署架构/
16.2.3同城双机房的RocketMQ部署架构(写高可靠)/
16.3同城双活的RocketMQ部署架构/
16.3.1简单的同城双活部署架构/
16.3.2同城双活的技术挑战/
16.3.3基于全局路由的同城双活部署架构/
16.3.4基于自定义负载均衡策略的同城双活部署架构/
16.4本章小结/
16.5思考题/
附录思考题参考答案/
内容摘要
本书以ApacheRocketMQ4.9.5(编写本书时最新的4.x版本)为基础,从ApacheRocketMQ的实际使用、原理剖析,大规模消息集群下企业级落地的实践以及所面临的挑战,逐一由浅入深地进行讲解。
全书分3篇,共16章。基础篇包含第1~4章,主要讲解ApacheRocketMQ入门以及如何掌握ApacheRocketMQ的基础使用。原理篇包含第5~12章,主要讲解了消费原理、负载均衡原理、顺序消息原理等核心的RocketMQ部分。进阶篇包含第13~16章,主要讲解消息幂等、双活设计等进阶为架构师必须掌握的内容。讲解过程中抛弃了传统的源码解析这种较枯燥的手段,而是更多地利用以下方式帮助读者更快、更轻松地接受ApacheRocketMQ的原理:通过近百张原创的手绘图,形象地描述ApacheRocketMQ的运作过程、原理;通过与Kafka、RabbitMQ等成熟的消息中间件产品做对比的方式,有助于读者对相关知识触类旁通,举一反三;每章都有思考题,以便于读者总结思考所学内容,进行灵活运用。随书附赠示意代码,获取方式见封底。
本书适合对ApacheRocketMQ感兴趣的读者阅读。本书的内容能帮助读者快速地从入门到精通,并借助书中所总结的实践经验,在工作中更好地设计出高并发、高可用的后台系统,支撑互联网业务的高速发展。
— 没有更多了 —
以下为对购买帮助不大的评价