要素

  1. 性能

    1. 浏览器端:浏览器缓存、页面压缩、减少cookie传输
    2. CDN:将网站静态内容分发至离用户近的服务商机房
    3. 服务器端:本地缓存(读写比例2:1以上)、分布式缓存(Memcached)
    4. 异步:消息队列
    5. 多台应用服务器构成集群
    6. 软件开发:多线程、改善内存
  2. 可用性:冗余

高可用架构:(应用层(业务逻辑层),服务层)->属于应用服务器,数据层
应用:i. 利用应用的无状态性。通过负载均衡 实现无状态服务的失效转移;ii. session服务器管理session
服务:i. 负载均衡 ii. 分优先级 iii. 异步调用 iv. 服务降级 v. 幂等性设计
数据:cap原理,base;冷备,热备(同步,异步)
软件发布:自动化bug测试;预发布验证;代码控制git 分支开发 主干发布;自动化发布 火车模型;灰度发布

  1. 应用服务器:多台服务器通过负载均衡设备构成集群
  2. 存储服务器:实时备份
  1. 伸缩性:不改变网站的软硬件设计,通过不断向集群中添加服务器(改变部署的服务器数量)来缓解不断上升的用户并发访问压力

    1. 应用服务器集群伸缩性:HTTP重定向负载均衡;DNS域名解析负载均衡(返回内部负载均衡服务器的地址 而不是提供服务的地址);反向代理负载均衡(应用程序中分发数据);IP负载均衡(在内核进程中分发数据,性能更好,但是负载均衡服务器网卡带宽成为瓶颈);数据链路层负载均衡(三角传输模式,只改目的mac不改目标IP,这样响应数据不需要经过负载均衡服务器,常用)
    2. 分布式缓存集群:一致性Hash算法
  2. 扩展性:网站增加新业务(新功能上线)时不会对现有产品不产生影响

开闭原则,低耦合

  1. 事件驱动架构:消息队列 将消息的产生和处理分离开
  2. 分布式服务:业务和可复用服务分离,通过分布式服务框架调用
  1. 安全性