一、引子
由于单机架构有着诸多缺点,比如不能保证服务的可靠性,不能接受集群的高访问量,这时我们除了对服务器进行纵向升级(升级内存、磁盘 或者更换更加大型的服务器),但是这个依然不能保证可靠性,我们不得不对单机架构进行调整和优化,目的是解决提升业务系统的并行处理能力,降低单机系统负载。
二、集群架构的基本论述
集权技术可以将多台独立服务器相互连接组合起来,形成一个整体的对外服务,通过增加新的服务器来分散并非访问流量,一台不够就扩到两台,甚至更多,只要业务系统能够随意支撑服务器的横向扩容,可以无惧任何挑战。
本图片和文章请参考 超大流量分布式系统架构解决方案 (博文视点出品)
对于无状态的WebServer 节点来说,我们通常会使用Nginx来实现负载均衡调度,但是在线上环境中,Nginx也应该巨鳖高可用性,这可以通过DNS轮询来实现,或者如果你所在企业使用的是云主机,则可以使用云运营商提供SLB服务,总之,在集群环境中,WebServer节点的数量越多,并行处理能力和容错性就越强,哪怕其中某些节点因为种种宕机,也不会导致系统不可用。
随着我们的改造的还有分布式缓存和数据库,对于查询操作我们尽可能在缓存中命中,从而降低了数据库的负载压力,尽管缓存技术分担了数据库的压力,但是写入操作和无法命中的数据依然需要对数据库频繁的访问,这是我们就应该考虑如何实现读/写分离。
三、面对更复杂的数据如何调整业务部署
1、利用CDN加速系统相应
2、业务垂直化,降低耦合,从而实现分而治之的管理(分布式架构方向)