(十三)本章小结:百万流量,这些技术够用了

单体ALL in one 架构,遇到什么问题,架构如何演进?

(1)技术不炫技,以解决业务问题为导向;

(2)系统改造尽可能小的架构方案;

(3)以最快的速度,提升系统的性能,解决遇到的问题;

问题一:如何突破单机资源限制,提升性能?

 架构演进:伪分布式,提升性能

 三大分离

 (1)动静分离

 (2)读写分离(引发读写延时新问题)

 (3)前台后台分离

问题二:如何解除耦合,缩小故障影响范围?

 架构演进:垂直拆分,解耦

 垂直拆分

 (1)业务垂直拆分

 (2)代码垂直拆分(子系统解耦)

 (3)数据库垂直划分(数据量降低,延时缓解)

    (4)研发团队垂直划分(专业化,效率提升)

问题三:如何保证垂直拆分后,子系统的高可用?

 架构演进:反向代理

 (1)子web系统的性能,不再受到单台机器资源限制,可以扩展;

 (2)子web系统,实现了高可用(伪集群->真集群)

问题四:真集群后,如何做负载均衡?

  随机,轮询,静态权重,一致性,四层转发以及七层转发(nginx,lvs,f5)

问题五:反向代理,如何保证高可用?

       keepalived+vip

问题六:反向代理技术出现之前,接入层如何扩展?

       DNS轮询

问题七:多层反向代理,如何还有性能瓶颈呢?如何做到,无限性能?

       还是DNS轮询,实施多层反向代理的扩容

问题八:session一致性如何保障?

       方案三:反向代理hash一致性(四层,七层)

       方案四:后端统一存储法

问题九:静态资源如何加速?

       CDN!!!

       CDN如何就近访问?

           CDN架构:智能DNS+源+镜像

保证一致性的最佳实践

 (1)资源更新,采用拉(镜像拉源),而不是推(源推送镜像);

 (2)常更新的静态资源,加上版本号;

还有哪些架构实践:

(1)分层服务化

(2)服务化之后的高可用,高性能,负载均衡

(3)数据库极限优化

(4)架构优化万金油,缓存最佳实践

(5)高并发下的一致性

(6)...

原文地址:https://www.cnblogs.com/qinchanggui/p/13417117.html