其实,《大型网站技术架构》第二章大型网站技术架构模式,第三章大型网站技术架构要素,包括后面的架构一整章,都是围绕着大型网站的要素及优化手段展开的。
大型网站的几个要素:
性能
衡量指标:响应时间、并发数、吞吐量、性能计数器
响应时间:从请求发出到收到响应的时间;
并发数:网站系统用户数(网站注册用户数) 》 网站在线用户数(网站登录用户数)》网站并发用户数
吞吐量:TPS(每秒事务数) HPS(每秒HTTP请求数) QPS(每秒查询数)访问数/天 业务数/小时
优化策略:
web前端性能优化:
1. 浏览器访问优化
2. CDN(网站架构模式缓存)
3. 反向代理(网站架构模式缓存)
应用服务器性能优化:
3. 负载均衡(网站架构模式缓存)
4. 分布式(网站架构模式分布式)
5. 集群(网站架构模式集群)
6. 缓存(网站架构模式缓存)
7. 异步(网站架构模式异步)
存储性能优化:
8. 主从复制
可用性
衡量指标:一台或多台服务器宕机,系统仍然可用。目标就是达到7*24可用
优化策略:
1. 应用高可用
2. 服务高可用
3. 数据高可用
4. 软件质量高可用
伸缩性
衡量指标:是否可以用多台服务器构建集群,是否能向集群中添加服务器,添加服务器之后是否能保证像原来一样可用。
优化策略:
1. 应用服务器集群,不在应用服务器保存数据,如会话数据。
2. 缓存服务器集群
3. 数据库服务器集群
扩展性
衡量指标:增加新的业务产品时,是否可以实现对现有产品透明无影响。
优化策略:
1.技术驱动架构,个人理解就是队列,生产/消费模式。
2. 分布式服务,将业务和可复用服务分离开,就是尽可能多的让多个业务方调用。进一步诠释了封装。
在这里,我想表达一下,写了这么多年的代码,尽管很多时候ctrl+c/v,但是写代码的思想和境界还是在提高,也待提高。原来纯粹是为了完成功能而写代码,现在是为了诠释封装、设计模式而写代码。
安全
衡量指标:对攻击与窃密手段,是否有应对策略。