名词解释 #
- DFX(Design For X): 面向产品生命周期设计以及面向来自客户对产品的要求的设计,X可以指产品生命周期内的某一个环节或特性
- RAMS: 广义可靠性
- Reliability - 可靠性
- Availability - 可用性
- Maintainability - 可维护性
- Safety - 安全性(人身安全)
- 可维护性: 产品在规定的条件下和规定的时间内,按规定的程序和方法进行维护时,保持或恢复到规定状态的能力。
- 可用性: 是产品在任意一个随机时刻处于可用状态的能力。可用性=可用时间/(可用时间+不可用时间)
一、大型架构演进 #
1. 系统处理能力提升途径 #
垂直伸缩 | 水平伸缩 | |
---|---|---|
伸缩途径 | 单机性能提升 | 增加机器组建集群 |
行业 | 传统行业,如银行 | 互联网行业 |
成本 | 增加处理能力到某个程度后,会需要更多的钱来进行更高的提升 | 增加服务器的成本为线性的 |
极限 | 物理处理存在极限 操作系统或应用程序处理存在极限 |
增加服务器就可以提升性能 应用程序和系统在不同服务器运行,不会达到极限 |
2. 架构演进 #
用户数 | 方案 | 解决瓶颈 | 当前性能瓶颈 |
---|---|---|---|
少量 | 单机系统处理 | 数据在业务层处理复杂度 | |
万级 | 使用数据库处理数据,业务读取数据库 | 应用处理瓶颈 | 单机数据库读写瓶颈以及应用的cpu处理瓶颈 |
十万级 | 需要增加缓存改善,应用服务分布式集群 | 单机cpu处理瓶颈 | 数据库io瓶颈 |
百万级 | 使用cdn和反向代理进行加速响应 数据库进行读写分离 |
数据库处理速度,减少静态资源处理消耗 | 文件系统和数据库处理瓶颈 |
千万级 | 分布式文件系统,分布式数据库系统 | 文件系统和数据库处理瓶颈 | 数据量大了之后,硬件性能、数据库、处理数据的能力都是瓶颈 |
亿级 | 使用搜索引擎、NoSQL、消息队列与分布式服务 | 业务增加的复杂度 |
- 数据库应用分离
- 缓存改进性能
- 应用服务集群,使用负载均衡调度到不同的应用服务器
- 数据库读写分离
- 反向代理和CDN加速响应
- 分布式文件系统和分布式数据库系统
- 使用消息队列与分布式服务