网站架构要素
性能
现象
- 网站慢
解决办法:
浏览器:
浏览器缓存、页面压缩、减少cookie传输,减少http请求,合并CSS,图片,JS,启用压缩
网络:CDN,反向代理,缓存热点文件
服务器:
- 缓存数据(分布式缓存、服务器本地缓存)
- 异步操作
- 通过消息消除峰值
- 多线程:
-
- 将对象设计为无状态对象
-
- 使用局部变量
-
- 并发访问资源时使用锁
- 内存优化
-
- 通过对象池减少对象穿件和资源消耗,例如数据库连接池
-
- 垃圾回收:年轻代(Eden ,From,To)[Young GC],年老代[Full GC]
数据库:索引、缓存,SQL优化,分库分表
可用性:系统的总可用时间
优化方案:
- 冗余,服务部署多台,出现故障的从路由中移除
实践经验
- 分级管理、服务隔离、优先响应
- 超时设置
- 服务降级
伸缩性:通过不断向集群中加入新的服务器来缓解访问压力
指标:
- 是否很容易的将新服务器加入到集群
- 新的服务器是否能够提供无差别的服务
技术点:
- 应用服务器集群:无状态,
- 缓存服务器集群:改进缓存路由算法
- 数据库集群:分库分区