基本信息
名称: 大型网站技术架构:核心原理与案例分析
作者信息: 作者: 李智慧 [ 中文 pdf ]
简单介绍
本书作者是拥有核心技术部门的一线工作经验,直接体验了大型网站构建与发展过程中的种种生与死,蜕与变,见证了一个网站架构从幼稚走向成熟稳定的历程。
没有晦涩难懂的术语,没有诘屈聱牙的文句,没有故弄玄虚的观点……
明明白白的语句,清清楚楚的文法,干净利落的建议——让读者直接体会网站架构的紧要处,不容马虎的关键点——这恰好是一个优秀的网站架构所必备的要素。
如果说“水不在深,有龙则灵”,那么对于想了解网站架构的读者而言,这本书恰好是“书不在多,有它则行!”
还犹豫什么呢?
目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
| 第1篇概述 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.2Web前端性能优化42 4.2.1浏览器访问优化42 4.2.2CDN加速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.2B+树vs.LSM树59 4.4.3RAIDvs.HDFS61 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.1CAP原理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.1HTTP重定向负载均衡100 6.2.2DNS域名解析负载均衡101 6.2.3反向代理负载均衡102 6.2.4IP负载均衡103 6.2.5数据链路层负载均衡104 6.2.6负载均衡算法105 6.3分布式缓存集群的伸缩性设计106 6.3.1Memcached分布式缓存集群的访问模型107 6.3.2Memcached分布式缓存集群的伸缩性挑战107 6.3.3分布式缓存的一致性Hash算法109 6.4数据存储服务器集群的伸缩性设计112 6.4.1关系数据库集群的伸缩性设计113 6.4.2NoSQL数据库的伸缩性设计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.1WebService与企业级分布式服务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.1XSS攻击136 8.1.2注入攻击138 8.1.3CSRF攻击139 8.1.4其他攻击和漏洞140 8.1.5Web应用防火墙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.1Wikipedia网站整体架构163 10.2Wikipedia性能优化策略165 10.2.1Wikipedia前端性能优化165 10.2.2Wikipedia服务端性能优化166 10.2.3Wikipedia后端性能优化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 附录BWeb开发技术发展历程215 后记218
|
亚马逊链接