第一篇 概述
1.大型网站架构演化
1.1 大型网站软件系统的特点
高并发,大流量,高可用,海量数据,用户分布广泛,网络情况复杂,安全环境恶劣,需求快速变更,发布频繁,渐进式发展
1.2 大型网站架构演化发展历程
php+mysql+linux 一台电脑----->
应用服务器+文件服务器+数据库服务器----->
应用服务器的本地缓存,分布式缓存----->
应用服务器的集群(负载均衡调度服务器)----->
数据库读写分离(主从数据库)----->
CDN和反向代理----->
分布式数据库+分布式文件系统(业务分库)----->
nosql+搜索引擎(统一数据访问模块)----->
业务拆分----->
分布式服务
2.大型网站架构模式
分层,分割,分布式,(分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算),集群,缓存(CDN,反向代理,本地缓存,分布式缓存),异步(分布式消息队列),冗余,自动化,安全
3.大型网站核心架构要素
性能,可用性,伸缩性,扩展性,安全性
第二篇 架构
4.瞬时响应:网站的高性能架构
4.1 性能测试指标
响应时间,并发数,吞吐量,性能计数器
4.2 性能测试方法
性能测试,负载测试,压力测试,稳定性测试
4.2 web前端性能优化
a.浏览器访问优化
1.减少http请求,合并css,合并javascript,合并图片
2.使用浏览器缓存 设置http头中cache-control和expires的属性
3.启用压缩 gzip压缩
4.css放在页面最上面,javascript放在最下面
5.减少cookie传输
b.CDN加速
c.反向代理
4.3 应用服务器性能优化
1.分布式缓存
a.JBoss Cache为代表的需要更新同步
b.Memcached为代表的不互相通信 (简单的通信协议,丰富的客户端程序,高性能的网络通信,高效的内存管理(lru算法,近期最小使用),互不通信的服务器集群架构
2.异步操作 消息队列异步化调用
3.使用集群
4.代码优化
a.多线程 b.资源复用 c.数据结构 d.垃圾回收
4.4 存储性能优化
机械硬盘 vs 固态硬盘
B+树 vs LSM树
RAID vs HDFS
廉价磁盘冗余阵列
hadoop分布式文件系统
5.万无一失:网站的高可用架构
1.session复制
2.session绑定
3.利用cookie记录session
4.session服务器
高可用的服务:1分级管理 2超时设置 3异步调用 4服务降级 5幂等性设计
高可用的数据:
高可用的网站的软件质量保证:网站发布流程:
自动化测试:
网站运行监控:用户行为日志收集,服务器性能监控
6.永无止境:网站的伸缩性架构
负载均衡的算法:轮询,加权轮询,随机,最少连接,源地址散列
7.随需应变: 网站的可扩展架构
事件驱动架构
8.固若金汤:网站的安全架构
消毒,httponly,
sql注入:
消毒,参数绑定
表单token,验证码,
文本匹配,分类算法,黑名单
第三篇 案例
9. 淘宝网的架构演化案例分析
10.维基百科的高性能架构设计分析
11.海量分布式存储系统Doris的高可用架构设计分析
12.网站秒杀系统架构设计案例分析
秒杀系统独立部署
秒杀商品界面静态化
租借秒杀系统网络带宽
动态生成随机下单页面URL
13.大型网站典型故障案例分析
第四篇 架构师
14.架构师领导艺术
15.网站架构师职场攻略
16.漫话网站架构师