之前看到有人推荐这本书,就买了一本回来看了下,非常清晰明了,非常适合入门,总结一下,供自己复习。
大型网站发展历程
- 单体架构
- 应用服务和数据服务分离
- 使用缓存
- 应用服务器集群
- 数据库读写分离
- 反向代理和CDN加速
- 分库、分布式数据库
- NoSQL和搜索引擎
- 业务拆分
- 微服务
大型网站架构模式
- 水平分层
- 垂直分割
- 分布式(缺点:1.性能2.可用性3.数据一致性4.开发维护难度)
- 集群
- 缓存(CDN、反向代理、本地缓存、分布式缓存)
- 异步
- 冗余
- 自动化
- 安全
大型网站核心架构要素
性能
衡量指标:
相应时间、并发数、TPS、性能计数器(内存使用、cpu使用、io、system load系统负载)
优化策略:
寻找系统瓶颈、分而治之、逐步优化
- 浏览器:浏览器缓存、页面压缩、减少cookie传输、CDN、反向代理
- 服务端:本地缓存、分布式缓存、异步、集群
- 代码:多线程、内存管理、垃圾回收
- 数据库:索引、缓存、sql优化、nosql
可用性
冗余!!!
- 高可用的应用(无状态性)
分布式session(1.Session复制2.Session绑定3.利用Cookie记录Session4.Session服务器) - 高可用的服务
- 高可用的数据
数据备份、失效转移
系统监控
- 用户行为日志收集
- 服务器性能监控
- 运行数据报告
伸缩性
- 引用服务器集群
- 分布式缓存集群—一致性hash
- 数据库集群
扩展性
安全性
- XSS攻击—跨站点脚本攻击
- sql注入
- CSRF
- Session劫持