新書推薦:
《
秩序四千年:人类如何运用法律缔造文明
》
售價:NT$
704.0
《
民法典1000问
》
售價:NT$
454.0
《
国术健身 易筋经
》
售價:NT$
152.0
《
古罗马800年
》
售價:NT$
857.0
《
权力与相互依赖(第四版)(中译本修订版)
》
售價:NT$
658.0
《
写出心灵深处的故事:踏上疗愈之旅(修订版)(创意写作书系)
》
售價:NT$
301.0
《
控制权视角下的家族企业管理与传承
》
售價:NT$
398.0
《
冯友兰和青年谈心系列
》
售價:NT$
762.0
|
編輯推薦: |
(1)分布式系统研发工程师和架构师多年跨行业架构设计经验的总结,得到了行业的多位架构师和技术专家的高度评价。
(2)从前后端交互、网络传输、负载均衡、分布式事务、高性能数据库、高并发、高可用等9个维度全面讲解分布式系统的技术栈。
|
內容簡介: |
内容简介
本书从全栈角度讲解了分布式系统涉及的各项主要技术,从原理剖析、应用场景和实践案例3个维度展开,是作者多年分布式系统研发和架构经验的总结。
从前端到后端、从高效交互到负载均衡、从网络传输到Web服务器、从高并发到高可用……本书囊括了分布式系统的整个技术体系,内容详实、结构清晰,能帮助读者理解和掌握分布式系统架构设计的难点和调优方案。
全书一共10章,具体内容如下:
第1章介绍了分布式架构的理念、目标、作用,以及架构和设计中的难点;
第2章讲解了分布式架构中前端和后端的交互方式、交互难点、高效交互调优;
第3章讲解了分布式环境下网络传输的过程、难点、性能调优;
第4章讲解了Nginx的负载均衡、页面缓存、限流、高可用、性能调优;内容简介
本书从全栈角度讲解了分布式系统涉及的各项主要技术,从原理剖析、应用场景和实践案例3个维度展开,是作者多年分布式系统研发和架构经验的总结。
从前端到后端、从高效交互到负载均衡、从网络传输到Web服务器、从高并发到高可用……本书囊括了分布式系统的整个技术体系,内容详实、结构清晰,能帮助读者理解和掌握分布式系统架构设计的难点和调优方案。
全书一共10章,具体内容如下:
第1章介绍了分布式架构的理念、目标、作用,以及架构和设计中的难点;
第2章讲解了分布式架构中前端和后端的交互方式、交互难点、高效交互调优;
第3章讲解了分布式环境下网络传输的过程、难点、性能调优;
第4章讲解了Nginx的负载均衡、页面缓存、限流、高可用、性能调优;
第5章讲解了Varnish的HTTP加速、数据缓存、缓存策略、高可用、性能调优;
第6章讲解了Tomcat的原理、加载机制、安全管理、高可用集群、性能优化;
第7章讲解了分布式环境中高并发的问题,通过多种技术方案,如缓存、消息队列、分布式锁等方式去优化和处理,提高系统整体的吞吐量;
第8章介绍了普通事务与分布式事务的差异性,以及分布式事务的多种处理方式;
第9章讲解了如何通过高效索引优化、高可用的技术方案让MySQL能够提供更高效的数据库服务;
第10章讲解了分布式环境中的高可用,即如何通过容量预估、全链路压测、容灾设计来提高系统整体的可用性和健壮性。
|
關於作者: |
张程
研发工程师和架构师,在分布式系统架构领域有丰富的实战经验,擅长高并发、高可用系统的架构,以及分布式系统的性能调优。
曾就职于格瓦拉电影和优速科技,任职期间参与过多个大型银行系统、大型购票系统、物流订单系统的架构设计和研发工作。曾经还参与过分布式Job调度系统的设计和架构工作。
热衷于技术探索和研发,在CSDN分享了大量关于架构和研发的文章,获得一致好评。
|
目錄:
|
前 言
第1章 分布式架构介绍1
1.1 分布式架构发展过程2
1.2 分布式架构设计理念和目标6
1.2.1 设计理念6
1.2.2 设计目标7
1.3 分布式架构应用场景10
1.4 分布式架构设计难点10
1.4.1 网络因素10
1.4.2 服务可用性11
1.4.3 数据一致性12
1.5 分布式架构解决痛点13
1.6 本章小结14
第2章 分布式架构前后端交互15
2.1 前后端交互发展过程15
2.1.1 传统交互模式16
2.1.2 前后端分离交互模式19
2.1.3 整体交互22
2.2 前后端交互方式22
2.2.1 工作流程22
2.2.2 交互常见状态码29
2.3 前后端交互难点30
2.4 前后端交互优化32
2.5 案例讲解37
2.6 本章小结40
第3章 分布式架构网络传输41
3.1 网络传输协议41
3.2 网络传输调用过程46
3.2.1 协议概述46
3.2.2 传输过程48
3.3 网络传输优化52
3.4 本章小结54
第4章 分布式架构Nginx55
4.1 Nginx工作原理55
4.2 Nginx源码编译安装57
4.3 Nginx配置62
4.4 Nginx代理&负载均衡64
4.4.1 正向代理66
4.4.2 反向代理66
4.4.3 动静分离68
4.4.4 负载均衡策略69
4.5 Nginx缓存74
4.6 Nginx限流76
4.7 Nginx屏蔽79
4.8 Nginx优化79
4.8.1 优化思路79
4.8.2 核心配置优化79
4.9 Nginx高可用82
4.10 本章小结86
第5章 分布式架构Varnish87
5.1 Varnish工作原理87
5.2 Varnish源码编译安装89
5.3 Varnish配置92
5.4 Varnish核心指令98
5.4.1 Varnish核心指令之backend98
5.4.2 Varnish核心指令之director98
5.5 Varnish缓存102
5.5.1 Varnish缓存状态102
5.5.2 Varnish缓存管理104
5.6 Varnish处理策略105
5.6.1 pass106
5.6.2 pipe106
5.6.3 lookup107
5.7 Varnish健康检查107
5.8 Varnish优化109
5.8.1 Varnish优化思路109
5.8.2 Varnish优化讲解109
5.9 Varnish高可用111
5.10 本章小结116
第6章 分布式架构Tomcat117
6.1 Tomcat原理117
6.2 Tomcat生命周期123
6.3 Tomcat源码编译安装124
6.4 Tomcat目录结构126
6.4.1 bin目录126
6.4.2 conf目录127
6.4.3 lib目录128
6.4.4 logs目录129
6.4.5 webapps目录129
6.5 Tomcat加载过程130
6.5.1 Bootstrap类初始化130
6.5.2 Bootstrap启动132
6.6 Tomcat安全135
6.6.1 配置调整135
6.6.2 安全策略136
6.6.3 SSL传输安全136
6.7 Tomcat集群137
6.7.1 集群组件实现138
6.7.2 集群配置139
6.8 JVM142
6.8.1 Class文件结构143
6.8.2 类的装载、连接和初始化145
6.8.3 JVM的内存分配148
6.8.4 JVM执行引擎151
6.8.5 垃圾回收152
6.9 Tomcat性能调优158
6.9.1 性能测试158
6.9.2 性能优化162
6.10 本章小结167
第7章 分布式架构高并发168
7.1 高并发使用场景169
7.2 高并发难点171
7.2.1 高并发期间如何避免产生脏数据171
7.2.2 当出现脏数据后如何处理171
7.2.3 高并发期间如何节约带宽172
7.3 高并发之缓存174
7.3.1 Redis介绍174
7.3.2 Redis原理175
7.3.3 Redis安装编译176
7.3.4 Redis数据结构178
7.3.5 Redis持久化181
7.3.6 Redis事务183
7.3.7 Redis分布式锁186
7.3.8 Redis任务队列189
7.3.9 Redis高并发处理常见问题及解决方案201
7.3.10 Redis高可用211
7.3.11 Redis调优213
7.4 高并发之消息队列214
7.4.1 RocketMQ介绍214
7.4.2 RocketMQ安装编译217
7.4.3 RocketMQ应用场景221
7.4.4 RocketMQ路由中心222
7.4.5 RocketMQ消息存储结构224
7.4.6 RocketMQ刷盘和复制策略226
7.4.7 RocketMQ消息队列227
7.4.8 RocketMQ高并发处理常见问题及解决方案238
7.4.9 RocketMQ集群240
7.4.10 RocketMQ调优240
7.5 高并发优化242
7.5.1 优化思路242
7.5.2 优化方案243
7.6 高并发经典案例245
7.7 本章小结249
第8章 分布式架构事务250
8.1 分布式事务介绍251
8.1.1 本地事务251
8.1.2 全局事务253
8.1.3 两阶段提交254
8.1.4 分布式事务255
8.1.5 小结255
8.2 分布式事务概论256
8.2.1 CAP定理256
8.2.2 BASE理论257
8.3 分布式事务应用场景258
8.4 分布式事务难点259
8.4.1 网络因素259
8.4.2 消息重复发送260
8.4.3 CAP定理选择262
8.5 分布式事务解决方案262
8.5.1 最大努力通知263
8.5.2 TCC事务补偿273
8.5.3 消息一致性284
8.6 分布式事务案例讲解295
8.7 本章小结297
第9章 分布式架构MySQL298
9.1 MySQL运行原理299
9.2 MySQL编译启动304
9.3 MySQL事务307
9.3.1 事务特性307
9.3.2 隔离级别308
9.3.3 死锁308
9.3.4 事务日志309
9
|
內容試閱:
|
为何写作本书
目前市面上有很多分布式架构的书,其中很多都是讲述分布式的某项技术栈,缺少对整个分布式系统的讲解。笔者在分布式领域从业多年,对分布式领域诸多技术栈了解颇深,因此想把心得分享出来,从多个方面去呈现分布式系统架构的多样性和完整性。
本书主要特点
本书从技术原理、高并发、性能优化的角度出发,对分布式环境中因应用场景复杂多变产生的问题,从多种技术层面进行分析,并给出高性能的优化方案和高可用的架构方案。通过本书,读者在实际工作中可以整体提高分布式环境中应用的稳定性。
书中融入了对分布式领域中多种主流技术栈的介绍,能让读者全方位了解关于分布式系统架构的知识。
本书阅读对象
本书是一本关于分布式系统架构的技术型书,适合的阅读对象如下。
对分布式、分布式全栈中使用的技术栈感兴趣的读者。
基础偏弱,想通过学习分布式全栈中的概念、设计思想以加深对分布式理解的技术人员。
基础偏强,想深刻理解并灵活运用分布式全栈中的设计思想、优化方案的技术人员。
如何阅读本书
本书根据分布式环境交互的顺序来构造和安排内容,建议按照目录的顺序依次阅读。全书一共10章,具体如下。
第1章 主要介绍分布式的发展过程、分布式架构、分布式架构技术设计难点以及互联网中技术在分布式下的使用。
第2章 主要介绍分布式环境下前后端交互发展过程、交互难点和高效交互调优。
第3章 主要介绍分布式环境中网络传输的过程、难点、性能调优。
第4章 主要介绍Nginx的负载均衡、页面缓存、限流、高可用、性能调优。
第5章 主要介绍Varnish的HTTP加速、缓存策略、高可用、性能调优。
第6章 主要介绍Tomcat的原理、加载机制、安全管理、高可用集群、性能调优。
第7章 主要介绍分布式环境中高并发的问题,通过多种技术方案,如缓存、消息队列、分布式锁等去优化处理,以提高系统整体的吞吐量。
第8章 主要介绍普通事务与分布式事务的差异性,以及对分布式事务的多种处理方式,本章会通过多个案例并结合代码进行分析。
第9章 主要介绍MySQL数据库的特性,即如何通过高效索引优化、高可用的技术方案让MySQL提供更高效的数据库服务。
第10章 主要介绍分布式环境中高可用的相关内容,即如何通过容量预估、全链路压测、容灾设计来提高系统整体的可用性和健壮性。
勘误
由于水平有限,加之编写时间仓促,本书中可能会出现一些错误和表述不准确的地方,希望读者朋友批评指正。大家可以通过CSDN博客专栏(https:blog.csdn.netqaz7225277category_9290006.html)留言反馈,期待得到你们的反馈和建议。
致谢
首先要感谢《RocketMQ技术内幕》的作者丁威对我的指导,为我的职业发展提供的诸多帮助。
感谢分布式领域与我探讨技术的朋友们,他们是姜伟、丁威、张登、沈尚伟、张瑾、孙凯、武万祥、黄正云、万振崎、张磊、谢书愉、王义武以及线下交流过的每位朋友,感谢他们对我的支持和帮助。感谢张瑾的引荐,感谢范文嵩的指点,感谢名锋的分享,是他们的努力和付出为我指明了前进的方向。
感谢机械工业出版社华章公司的杨福川老师,他在这一年多的时间中支持我的写作,并与我分享写书的经验。他的支持和鼓励让我坚持写作。感谢机械工业出版社华章公司的李艺老师、李杨老师,她们在我写作这一年多的时间中提供了诸多帮助,引导我顺利完成全部书稿。
最后感谢我的爸爸、妈妈、外婆将我培养成人,给予我莫大的关心和支持。感谢我的妻子、儿子,他们是我前进的最大动力。
|
|