大型网站技术架构演进与性能优化
内容介绍
本书从一名亲历者的角度,阐述了一个网站在业务量飞速发展的过程中所遇到的技术转型等各种问题及解决思路。从技术发展上看,网站经历了Web应用系统从分布式、无线多端、中台到国际化的改造;在解决大流量问题的方向上,涉及了从端的优化到管道到服务端甚至到基础环境优化的各个层面。书中总结的宝贵经验教训可以帮助读者了解当网站遇到类似问题时,应如何思考不同的解决思路、为什么要这样做、并*终做出合适的方案选择。
目录
- 1 构建大型网站:分布式改造 1
- 1.1 为什么要做分布式化 1
- 1.2 典型的分布式架构 2
- 1.3 分布式配置框架 4
- 1.4 分布式RPC框架 6
- 1.5 分布式消息框架 8
- 1.6 分布式数据层 11
- 1.7 分布式文件系统 12
- 1.8 应用的服务化改造 15
- 1.9 分布式化遇到的典型问题 16
- 1.10 分布式消息通道服务的设计 19
- 1.11 典型的分布式集群设计思路 21
- 1.12 总结 24
- 2 无线化:无线时代下的架构演进 26
- 2.1 无线环境下的新挑战 26
- 2.2 端的演进 28
- 2.3 无线链路的优化 32
- 2.4 服务端的演进 36
- 2.5 思考:开发语言选择的思考 44
- 2.6 总结 46
- 3 大型网站平台化演进:大中台小前台 49
- 3.1 为什么需要中台 49
- 3.2 什么是中台 53
- 3.3 提升中台的效率 55
- 3.4 中台是否能解决一切问题 64
- 3.5 总结 65
- 4 全球化下的网站演进:全球部署方案 66
- 4.1 国际化的背景 67
- 4.2 面临的技术挑战 68
- 4.3 全球部署的目标架构 69
- 4.4 何为单元化 69
- 4.5 单元化解决什么问题 70
- 4.6 单元化数据分片方案 70
- 4.7 数据路由方案 74
- 4.8 接入层路由 78
- 4.9 服务层路由 79
- 4.10 数据层路由 81
- 4.11 Sequence ID的冲突问题 83
- 4.12 异地多活 84
- 4.13 多语言问题 85
- 4.14 多时区问题 86
- 4.15 全球数据同步与数据路由 89
- 4.16 通用版与定制版的选择 90
- 4.17 全球化部署中遇到的坑 91
- 4.18 总结 92
- 5 应用程序优化:代码级优化 93
- 5.1 优化思路 93
- 5.2 影响性能的关键因素 97
- 5.3 Java特性的优化 102
- 5.4 减少并发冲突 104
- 5.5 减少序列化 105
- 5.6 减少字符到字节的转换 105
- 5.7 使用长连接 106
- 5.8 总结 106
- 6 应用架构探索:合并部署 108
- 6.1 什么是架构 108
- 6.2 什么是合并部署 110
- 6.3 能解决什么问题 112
- 6.4 如何解决 114
- 6.5 取得的效果 118
- 6.6 更进一步地做多版本部署 118
- 6.7 关于高密度部署的思考 121
- 6.8 总结 122
- 7 链路优化:大秒系统的极致优化思路 123
- 7.1 一些数据 123
- 7.2 热点隔离 124
- 7.3 动静分离 125
- 7.4 基于时间分片削峰 133
- 7.5 数据分层校验 134
- 7.6 实时热点发现 136
- 7.7 关键技术优化点 137
- 7.8 大促热点问题思考 140
- 7.9 总结 141
- 8 全局基础设施优化:资源调度优化 142
- 8.1 什么是资源调度 142
- 8.2 资源抽象层 144
- 8.3 物理资源调度 149
- 8.4 应用层调度 152
- 8.5 遇到的问题 155
- 8.6 总结 164
- 9 网站高可用建设:大型网站的稳定性建设 165
- 9.1 故障带来的影响 165
- 9.2 网站的可用性指标 166
- 9.3 稳定性建设思路 167
- 9.4 高可用体系化建设 171
- 9.5 研发人员的转变 180
- 9.6 稳定性组织保障 182
- 9.7 疑难问题排查思路 183
- 9.8 总结 190
- 附录 给新人成长的几点建议 191
- 参考资料 197