第一篇 概述

1.大型网站架构演化

1.1 大型网站软件系统的特点

高并发,大流量,高可用,海量数据,用户分布广泛,网络情况复杂,安全环境恶劣,需求快速变更,发布频繁,渐进式发展

1.2 大型网站架构演化发展历程

php+mysql+linux 一台电脑----->

应用服务器+文件服务器+数据库服务器----->

应用服务器的本地缓存,分布式缓存----->

应用服务器的集群(负载均衡调度服务器)----->

数据库读写分离(主从数据库)----->

CDN和反向代理----->

分布式数据库+分布式文件系统(业务分库)----->

nosql+搜索引擎(统一数据访问模块)----->

业务拆分----->

分布式服务

2.大型网站架构模式

分层,分割,分布式,(分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算),集群,缓存(CDN,反向代理,本地缓存,分布式缓存),异步(分布式消息队列),冗余,自动化,安全

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

性能,可用性,伸缩性,扩展性,安全性

第二篇 架构

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

4.1 性能测试指标

响应时间,并发数,吞吐量,性能计数器

大型架构 大型网站技术架构_数据库

大型架构 大型网站技术架构_数据库_02

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树

大型架构 大型网站技术架构_大型架构_03

RAID vs HDFS

廉价磁盘冗余阵列

大型架构 大型网站技术架构_数据库_04

hadoop分布式文件系统

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

大型架构 大型网站技术架构_ViewUI_05

大型架构 大型网站技术架构_javascript_06

1.session复制

2.session绑定

3.利用cookie记录session

4.session服务器

大型架构 大型网站技术架构_数据库_07

高可用的服务:1分级管理 2超时设置 3异步调用 4服务降级 5幂等性设计

高可用的数据:

高可用的网站的软件质量保证:网站发布流程:

大型架构 大型网站技术架构_ViewUI_08

自动化测试:

大型架构 大型网站技术架构_数据库_09

大型架构 大型网站技术架构_ViewUI_10

网站运行监控:用户行为日志收集,服务器性能监控

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

大型架构 大型网站技术架构_ViewUI_11

大型架构 大型网站技术架构_javascript_12

大型架构 大型网站技术架构_安全架构_13

大型架构 大型网站技术架构_数据库_14

大型架构 大型网站技术架构_ViewUI_15

大型架构 大型网站技术架构_ViewUI_16

大型架构 大型网站技术架构_数据库_17

大型架构 大型网站技术架构_大型架构_18

大型架构 大型网站技术架构_数据库_19

大型架构 大型网站技术架构_ViewUI_20

大型架构 大型网站技术架构_数据库_21

负载均衡的算法:轮询,加权轮询,随机,最少连接,源地址散列

大型架构 大型网站技术架构_大型架构_22

大型架构 大型网站技术架构_javascript_23

大型架构 大型网站技术架构_安全架构_24

大型架构 大型网站技术架构_大型架构_25

大型架构 大型网站技术架构_安全架构_26

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

大型架构 大型网站技术架构_ViewUI_27

大型架构 大型网站技术架构_安全架构_28

事件驱动架构

大型架构 大型网站技术架构_ViewUI_29

大型架构 大型网站技术架构_ViewUI_30

大型架构 大型网站技术架构_大型架构_31

大型架构 大型网站技术架构_ViewUI_32

大型架构 大型网站技术架构_ViewUI_33

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

大型架构 大型网站技术架构_大型架构_34

大型架构 大型网站技术架构_javascript_35

消毒,httponly,

sql注入:

消毒,参数绑定

大型架构 大型网站技术架构_javascript_36

表单token,验证码,

大型架构 大型网站技术架构_大型架构_37

大型架构 大型网站技术架构_安全架构_38

大型架构 大型网站技术架构_javascript_39

大型架构 大型网站技术架构_javascript_40

大型架构 大型网站技术架构_ViewUI_41

大型架构 大型网站技术架构_ViewUI_42

大型架构 大型网站技术架构_ViewUI_43

大型架构 大型网站技术架构_大型架构_44

 

大型架构 大型网站技术架构_安全架构_45

文本匹配,分类算法,黑名单

大型架构 大型网站技术架构_数据库_46

第三篇 案例

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

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

大型架构 大型网站技术架构_ViewUI_47

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

12.网站秒杀系统架构设计案例分析

秒杀系统独立部署

秒杀商品界面静态化

租借秒杀系统网络带宽

动态生成随机下单页面URL

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

大型架构 大型网站技术架构_javascript_48

大型架构 大型网站技术架构_数据库_49

大型架构 大型网站技术架构_javascript_50

大型架构 大型网站技术架构_安全架构_51

大型架构 大型网站技术架构_ViewUI_52

大型架构 大型网站技术架构_安全架构_53

大型架构 大型网站技术架构_大型架构_54

大型架构 大型网站技术架构_数据库_55

第四篇 架构师

14.架构师领导艺术

15.网站架构师职场攻略

16.漫话网站架构师