《大型网站技术架构 - 核心原理与案例分析》 目录

🌙
手机阅读
本文目录结构

本章目录

第 1 篇 概述

大型网站架构演化 2

* 1.1 大型网站软件系统的特点	3
* 1.2 大型网站架构演化发展历程	4
    * 1.2.1 初始阶段的网站架构	4
    * 1.2.2 应用服务和数据服务分离	4
    * 1.2.3 使用缓存改善网站性能	5
    * 1.2.4 使用应用服务器集群改善网站的并发处理能力	6
    * 1.2.5 数据库读写分离	7
    * 1.2.6 使用反向代理和 CDN 加速网站响应	8
    * 1.2.7 使用分布式文件系统和分布式数据库系统	9
    * 1.2.8 使用 NoSQL 和搜索引擎	10
    * 1.2.9 业务拆分	11
    * 1.2.10 分布式服务	11
* 1.3 大型网站架构演化的价值观	13
    * 1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对	13
    * 1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展	13
* 1.4 网站架构设计误区	14
    * 1.4.1 一味追随大公司的解决方案	14
    * 1.4.2 为了技术而技术	14
    * 1.4.3 企图用技术解决所有问题	14
* 1.5 小结	15

2 大型网站架构模式 16

* 2.1 网站架构模式	16
    * 2.1.1 分层	17
    * 2.1.2 分割	18
    * 2.1.3 分布式	18
    * 2.1.4 集群	19
    * 2.1.5 缓存	20
    * 2.1.6 异步	20
    * 2.1.7 冗余	21
    * 2.1.8 自动化	22
    * 2.1.9 安全	23
* 2.2 架构模式在新浪微博的应用	23
* 2.3 小结	25

3 大型网站核心架构要素 26

* 3.1 性能	27
* 3.2 可用性	28
* 3.3 伸缩性	29
* 3.4 扩展性	30
* 3.5 安全性	30
* 3.6 小结	31

第 2 篇 架构

4 瞬时响应:网站的高性能架构 34

* 4.1 网站性能测试	35
    * 4.1.1 不同视角下的网站性能	35
    * 4.1.2 性能测试指标	36
    * 4.1.3 性能测试方法	39
    * 4.1.4 性能测试报告	41
    * 4.1.5 性能优化策略	41
* 4.2 Web 前端性能优化	42
    * 4.2.1 浏览器访问优化	42
    * 4.2.2 CDN 加速	43
    * 4.2.3 反向代理	44
* 4.3 应用服务器性能优化	45
    * 4.3.1 分布式缓存	45
    * 4.3.2 异步操作	52
    * 4.3.3 使用集群	53
    * 4.3.4 代码优化	54
* 4.4 存储性能优化	58
    * 4.4.1 机械硬盘 vs. 固态硬盘	58
    * 4.4.2 B+ 树 vs. LSM 树	59
    * 4.4.3 RAID vs. HDFS	61
* 4.5 小结	64

5 万无一失:网站的高可用架构 66

* 5.1 网站可用性的度量与考核	67
    * 5.1.1 网站可用性度量	67
    * 5.1.2 网站可用性考核	67
* 5.2 高可用的网站架构	69
* 5.3 高可用的应用	71
    * 5.3.1 通过负载均衡进行无状态服务的失效转移	72
    * 5.3.2 应用服务器集群的 Session 管理	73
* 5.4 高可用的服务	76
* 5.5 高可用的数据	78
    * 5.5.1 CAP 原理	79
    * 5.5.2 数据备份	82
    * 5.5.3 失效转移	84
* 5.6 高可用网站的软件质量保证	85
    * 5.6.1 网站发布	85
    * 5.6.2 自动化测试	86
    * 5.6.3 预发布验证	87
    * 5.6.4 代码控制	88
    * 5.6.5 自动化发布	90
    * 5.6.6 灰度发布	91
* 5.7 网站运行监控	91
    * 5.7.1 监控数据采集	92
    * 5.7.2 监控管理	93
* 5.8 小结	94

6 永无止境:网站的伸缩性架构 95

* 6.1 网站架构的伸缩性设计	97
    * 6.1.1 不同功能进行物理分离实现伸缩	97
    * 6.1.2 单一功能通过集群规模实现伸缩	98
* 6.2 应用服务器集群的伸缩性设计	99
    * 6.2.1 HTTP 重定向负载均衡	100
    * 6.2.2 DNS 域名解析负载均衡	101
    * 6.2.3 反向代理负载均衡	102
    * 6.2.4 IP 负载均衡	103
    * 6.2.5 数据链路层负载均衡	104
    * 6.2.6 负载均衡算法	105
* 6.3 分布式缓存集群的伸缩性设计	106
    * 6.3.1 Memcached 分布式缓存集群的访问模型	107
    * 6.3.2 Memcached 分布式缓存集群的伸缩性挑战	107
    * 6.3.3 分布式缓存的一致性 Hash 算法	109
* 6.4 数据存储服务器集群的伸缩性设计	112
    * 6.4.1 关系数据库集群的伸缩性设计	113
    * 6.4.2 NoSQL 数据库的伸缩性设计	117
* 6.5 小结	119

7 随需应变:网站的可扩展架构 121

* 7.1 构建可扩展的网站架构	122
* 7.2 利用分布式消息队列降低系统耦合性	123
    * 7.2.1 事件驱动架构	123
    * 7.2.2 分布式消息队列	124
* 7.3 利用分布式服务打造可复用的业务平台	126
    * 7.3.1 Web Service 与企业级分布式服务	128
    * 7.3.2 大型网站分布式服务的需求与特点	129
    * 7.3.3 分布式服务框架设计	130
* 7.4 可扩展的数据结构	131
* 7.5 利用开放平台建设网站生态圈	132
* 7.6 小结	134

8 固若金汤:网站的安全架构 135

* 8.1 道高一尺魔高一丈的网站应用攻击与防御	136
    * 8.1.1 XSS 攻击	136
    * 8.1.2 注入攻击	138
    * 8.1.3 CSRF 攻击	139
    * 8.1.4 其他攻击和漏洞	140
    * 8.1.5 Web 应用防火墙	141
    * 8.1.6 网站安全漏洞扫描	142
* 8.2 信息加密技术及密钥安全管理	142
    * 8.2.1 单向散列加密	143
    * 8.2.2 对称加密	144
    * 8.2.3 非对称加密	144
    * 8.2.4 密钥安全管理	145
* 8.3 信息过滤与反垃圾	146
    * 8.3.1 文本匹配	147
    * 8.3.2 分类算法	148
    * 8.3.3 黑名单	149
* 8.4 电子商务风险控制	150
    * 8.4.1 风险	151
    * 8.4.2 风控	151
* 8.5 小结	153

第 3 篇 案例

9 淘宝网的架构演化案例分析 156

* 9.1 淘宝网的业务发展历程	157
* 9.2 淘宝网技术架构演化	158
* 9.3 小结	162

10 维基百科的高性能架构设计分析 163

* 10.1 Wikipedia 网站整体架构	163
* 10.2 Wikipedia 性能优化策略	165
    * 10.2.1 Wikipedia 前端性能优化	165
    * 10.2.2 Wikipedia 服务端性能优化	166
    * 10.2.3 Wikipedia 后端性能优化	167

11 海量分布式存储系统 Doris 的高可用架构设计分析 169

* 11.1 分布式存储系统的高可用架构	170
* 11.2 不同故障情况下的高可用解决方案	171
    * 11.2.1 分布式存储系统的故障分类	172
    * 11.2.2 正常情况下系统访问结构	172
    * 11.2.3 瞬时故障的高可用解决方案	173
    * 11.2.4 临时故障的高可用解决方案	174
    * 11.2.5 永久故障的高可用解决方案	175

12 网购秒杀系统架构设计案例分析 176

* 12.1 秒杀活动的技术挑战	177
* 12.2 秒杀系统的应对策略	177
* 12.3 秒杀系统架构设计	178
* 12.4 小结	182

13 大型网站典型故障案例分析 183

* 13.1 写日志也会引发故障	184
* 13.2 高并发访问数据库引发的故障	184
* 13.3 高并发情况下锁引发的故障	185
* 13.4 缓存引发的故障	185
* 13.5 应用启动不同步引发的故障	186
* 13.6 大文件读写独占磁盘引发的故障	186
* 13.7 滥用生产环境引发的故障	187
* 13.8 不规范的流程引发的故障	187
* 13.9 不好的编程习惯引发的故障	188
* 13.10 小结	188

第 4 篇 架构师

14 架构师领导艺术 190

* 14.1 关注人而不是产品	191
* 14.2 发掘人的优秀	191
* 14.3 共享美好蓝图	192
* 14.4 共同参与架构	193
* 14.5 学会妥协	194
* 14.6 成就他人	194

15 网站架构师职场攻略 196

* 15.1 发现问题,寻找突破	197
* 15.2 提出问题,寻求支持	199
* 15.3 解决问题,达成绩效	201

16 漫话网站架构师 203

* 16.1 按作用划分架构师	203
* 16.2 按效果划分架构师	204
* 16.3 按职责角色划分架构师	205
* 16.4 按关注层次划分架构师	205
* 16.5 按口碑划分架构师	206
* 16.6 非主流方式划分架构师	207
  • 附录 A 大型网站架构技术一览 208
  • 附录 B Web 开发技术发展历程 215
  • 后记 218

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了