最近在看李智慧的《大型网站技术架构》,简单记录一下系统设计的五要素和一些解决方案。
五要素包括:
- 性能
- 可用性
- 扩展性
- 伸缩性
- 安全性
1. 性能
性能其实可以分为用户眼里的性能和工程师眼里的性能,用户眼里的性能是广义上的性能:从点击到响应的所有时间,一切影响因素的综合;而工程师关注的性能主要是比较狭义,单指网站架构性能这一块,暂时忽略了例如网络波动、设备性能等因素。
描述计算机处理需求能力的指标,一般包括以下方面:
- 响应时间
- 吞吐量/吞吐率
- 并发用户数
可考虑的提高性能的方法:
-
缓存
本地缓存+缓存服务器
-
集群
使用负载均衡+多台服务器提供服务
-
异步
减少IO等待事件,提高CPU利用率进而提高吞吐量
-
动静分离
其实也是缓存的一种
2. 可用性
即网站的可用(可正常提供服务)时间,一般要求达到四个9以上(99.99%)。
常见提高可用性的手段有:
-
冗余
单节点服务器结构变为集群结构。
-
监控报警
有问题及时上报,快速处理排查隐患。
-
服务降级
保障最基础的功能可用。