重读大型网站技术架构
花了一天时间重读了一下这本书,这本书东西不深,普及读物,表示很欣赏。笔记一下吧:
1.架构模式
分层,分割,分布式(应用和服务,静态资源,数据和存储,分布式计算),集群,缓存(CDN,反向代理,本地缓存,分布式缓存),异步,冗余,自动化,安全
2.核心要素
a.性能
指标:响应时间,并发数,吞吐量,性能计数器
测试:性能测试,负载测试,压力测试,稳定性测试
优化:1前端: 浏览器:减少http请求,使用浏览器缓存,启用压缩,CSS在顶部JS在底部,减少Cookie传输,CDN,反向代理
2服务器:分布式缓存,异步操作,使用集群,代码优化
3存储优化:RAID VS HDFS
b.可用性
高可用应用:无状态失效转移,集群的Session管理(Session复制,Session绑定,Cookie记录Session,Session服务器)
高可用服务:分级管理,超时设置,异步调用,服务降级,幂指设计
高可用数据:CAP,数据备份,失效转移
c.伸缩性
负载均衡:http重定向,DNS域名解析,反向代理,IP,数据链路层(MAC地址,LVS)。算法:轮询,加权轮询,随机,最小连接,源地址散列。
分布式缓存一致性Hash,关系型数据库Cobar,NOSQL天然
d.扩展性
分布式消息队列
分布式服务
e.安全性
XSS(反射性,持久性)-》过滤,HttpOnly
SQL注入-》过滤,绑定变量
CSRF跨站点伪造-》表单Token,验证码,Referer check
白名单优于黑名单