大型网站架构基础之笔记
- 架构范式
- 分层架构
- 分布式架构
- 分布式应用与服务
- 分布式静态资源
- 分布式数据和存储
- 分布式计算 Hadoop, MapReduce
- 业务拆分
- 集群部署
- 缓存部署
- CDN
- 反向代理
- 本地缓存
- 分布式缓存
- 异步化
- 资源冗余
- 自动化
2.架构五要素
- 性能
- 网络性能 CDN,带宽
- 服务器硬件性能 CPU,内存,机械硬盘,SSD
- 负载均衡 LVS 四层
- 服务高性能
- 浏览器端 浏览器缓存,页面压缩, 减少Cookie
- 应用服务器端 本地缓存, 分布式缓存,异步操作
- 数据库服务器端 索引,缓存,SQL性能优化
- 可用性
- 7X24小时。
- 资源冗余
- 宕机时系统可用性
- 伸缩性
- 功能拆分,物理分离,实现伸缩
- 单一功能集群化
- 扩展性
- 事件驱动型,消息队列
- 分布式服务器框架,调用服务方式分离
- 安全性
- 保密性
- 完整性
- 真实性
- 占有性
3.性能指标
- 响应时间
- 并发数
- 吞吐量
- 健康度
4.缓存
- memcached
- Redis
- 适用于低频修改数据
- 适用于热点访问数据
- 数据不一致
- 通过异步线程
- 通过定时任务解决
- 通过状态校验解决
- 缓存可用性
- 分布式
- 复制
- 缓存穿透问题
- 结果为空的数据也缓存
- 一定不存在的key用布隆过滤器
- 分布式缓存
5.CDN缓存
6.负载均衡
- 七层负载均衡 Nginx
- 四层负载均衡 LVS F5
- 反向代理原理
- 做内部服务器的替身
- 作为负载均衡
- 好处
- 提高内部服务器安全性
- 提高响应能力
- 节约IP地址资源
7.分布式数据库
- mysql
- 优势
- 分布式数据管理,调高性能
- 经济型和灵活性好
- 可靠性和可用性强
- 数据切割
- 纵向切分
- 横向切分
- 读写分离
- 主从同步,数据完整性
- 基于代码实现
- 使用中间代里层
- 中间件
- Cobar,MyCat,OneProxy,Viteness,KingShard,Atlas,MaxScale
8.存储优化
- SDD
- RAID
- HDFS
- Hadoop2.0
9.消息队列
- 同步调用
- 异步调用
- 生产者-消费者模式
- 两种模型:
- 点对点模型
- 订阅模型
- 常用产品
- RabbitMQ
- ActiveMQ
- RocketMQ
- Kafka
10.分布式服务数据一致性
- 两阶段提交协议
- 准备阶段
- 提交阶段
- 三阶段提交协议
- TCC协议
- 解决方案
- 查询模式
- 补偿模式
- 异步确保模式
- 定时校对模式
11.分布式日志服务
- EFK
- elasticsreaarch
- filebeat
- kibana
- logstash
- kafka