淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

359 阅读5分钟

前言

从2009年到2016年,笔者非常幸运地经历了网站PV从1亿到50亿的飞速发展历程,在此过程中积累了一些大流量高并发网站架构设计和优化的经验。从技术发展来看,笔者经历了Web应用系统从分布式、无线多端、中台到国际化的改造;在解决大流量问题的方向上,积累了很多从端的优化到管道到服务端甚至到基础环境优化的经验。

本书要表达的内容并不是简单罗列所做过的事情,而主要是帮助读者了解当网站遇到类似问题时,应如何思考不同的解决思路、为什么要这样做、如何做出最终的方案选……其实每种架构的选择必然有它专属的现实场景,因此本书涉及的这些话题也不一定就是最完美的解决方案。但,我希望本书的分享能启发大家在解决类似问题时的思考和判断。

淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

很多网站早期都是基于Linux+Apache+MySQL+PHP架构的网站,从当时来看,这种非常流行的个人网站架构的确也非常匹配当时的发展状态。PHP语言的特性是快速发布,从页面渲染到数据库访问,均可以在一个页面里全部搞定。

即使放到今天,这种架构仍然还有很多人在用,它的优点就是非常简单高效,但.缺点也非常明显:扩展性和分布式不好,不适合企业级的、复杂业务逻辑的大规模协同开发。

随着网站的发展,大家觉得应该将PHP切换到Java。为什么要切换到Java语言呢?一般来说,企业选择开发语言会有如下考虑:

(1)语言本身的特性。每种语言开发出来都有它的特性和所适合的场景,像Python、PHP这类脚本语言非常适合快速简单的开发方式,而Java则比较适合构建复杂业务逻辑的企业级开发,但是开发效率会比PHP要差一点。

(2)程序员队伍。企业选择何种开发语言,还要看市场上的人才队伍是不是足够大,是不是有很高层次的人才。是否有高层次的人才,取决于当前的行业老大是不是也在用这种语言,比如当前的顶级互联网公司如果在用Java,那么自然这些公司的Java人才比较多,这样,他们的经验可以被快速复制到其他公司中。

(3)语言所对应的工具生态是否完善。一个语言是否有生命力,要看这个语言对应的生态工具是否完善,它的社区是否活跃。我们要用到各种工具,而我们也不可能自己去写每种工具,因此,是否能方便地利用开源工具,快速提升开发效率也是非常关键的。像现在很多大公司开源了很多Java的中间件产品,这些中间件可以直接拿来使用,就不需要再重新开发了。

综合以上因素,电商网站选择Java语言作为主要的系统开发语言是非常合适的。

正文

由于平台篇幅限制,小编只截出来了目录部分,有感兴趣的朋友可以滑到文末

第一章 构建大型网站: 分布式改造

  1. 为什么 要做分布式化
  2. 典型的分布式架构
  3. 分布式配置框架
  4. 分布式RPC框架
  5. 分布式消息框架
  6. 分布式数据层
  7. 分布式文件系统
  8. 应用的服务化改造
  9. 分布式化遇到的典型问题
  10. 分布式消息通道服务的设计
  11. 典型的分布式集群设计思路
  12. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第二章 无线化: 无线时代下的架构演进

  1. 无线 环境下的新挑战
  2. 端的演进
  3. 无线链路的优化
  4. 服务端的演进
  5. 思考:开发语言选择的思考
  6. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第三章 大型网站平台化演进:大中台小前台

  1. 为什么需要中台
  2. 什么是中台
  3. 提升中台的效率
  4. 中台是否能解决一切问题
  5. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第四章 全球化下的网站演进:全球部署方案

  1. 国际化的背景
  2. 面临的技术挑战
  3. 全球部署的目标架构
  4. 何为单元化
  5. 单元化解决什么问题
  6. 单元化数据分片方案
  7. 数据路由方案
  8. 接入层路由
  9. 服务层路由
  10. 数据层路由
  11. Sequence ID的冲突问题.
  12. 异地多活
  13. 多语言问题
  14. 多时区问题
  15. 全球数据同步与数据路由
  16. 通用版 与定制版的选择
  17. 全球化部署中遇到的坑
  18. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第五章 应用程序优化:代码级优化

  1. 优化思路
  2. 影响性能的关键因素
  3. Java 特性的优化
  4. 减少并发冲突
  5. 减少序列化
  6. 减少字符到字节的转换
  7. 使用长连接
  8. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第六章 应用架构探索:合并部署

  1. 什么是架构
  2. 什么是合并部署
  3. 能解决什么问题
  4. 如何解决
  5. 取得的效果
  6. 更进一步地做多版本部署
  7. 关于高密度部署的思考
  8. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第七章 链路优化:大秒系统的极致优化思

  1. 一些数据
  2. 热点隔离
  3. 动静分离
  4. 基于时间分片削峰
  5. 数据分层校验
  6. 实时热点发现
  7. 关键技术优化点
  8. 大促热点问题思考
  9. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第八章 全局基础设施优化:资源调度优化

  1. 什么是资源调度
  2. 资源抽象层
  3. 物理资源调度
  4. 应用层调度
  5. 遇到的问题
  6. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化

第九章 网站高可用建设:大型网站的稳定性建设

  1. 故障带来的影响
  2. 网站的可用性指标
  3. 稳定性建设思路
  4. 高可用体系化建设
  5. 研发人员的转变
  6. 稳定性组织保障
  7. 疑难问题排查思路
  8. 总结
淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化


淘宝一线技术专家亲身经历:大型网站技术架构演进与性能优化