大型网站后台架构的演变css
随着用户访问量的不断增长,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过分与变化来陈述。前端
主要指由web server 、应用服务器、数据库、存储、监控等组成的网站后台系统。web
我的站点后台架构。如图2-1所示。数据库
图2-1 单台一组后端
如图所示,若是是我的站点,访问量不大,通常都是将web server、应用服务器、数据库部署在一台物理服务器上。从图中也能够看到,一个网站最基本的后台须要web server、应用服务器、数据库三部分组成。缓存
考虑到网站访问量的不断增长,网站的后台架构也必须不断调整和优化,进一步实现功能分离。特别是随着访问量不断增长以及考虑到数据库的负载和数据的重要性,数据库须要分离出来。从web server到数据库实现各个层次的负载均衡。安全
考虑到数据库的安全性和处理性能,数据库单台部署。如图2-2-1-1所示。服务器
图2-2-1-1 数据库分离架构
如图所示,数据库与web server 、应用服务器分离出来,单台部署。这样作有两个好处:负载均衡
(1)数据库服务器性能提升,再也不和webserver 、应用服务器抢占资源。
(2)数据库服务器安全性能提升,不会由于一台服务器宕机而影响全部服务,特别是数据库服务。
随着访问量的不断增长,单台web server 负载会加大,甚至有宕机的危险,因此须要在前端增长负载均衡器,实现web server层的负载均衡。缓解压力。如图2-2-1-2所示。
2-2-1-2 前端负载均衡
如图所示,经过增长web server并用负载均衡器(load balance)来缓解前端的web server和应用服务器压力。而且,为了保证数据库的绝对安全,作了Master-Slave主从备份。这样当master db宕机以后,slave db能够当即启用。因此这样作有如下好处:
(1) 前台web server 和 应用服务器压力减小,负载均衡器分流负载。
(2) 后端数据库安全性增强,出现故障后,业务能够很快切换到slave db 上。
随着访问量的不断增长,发现整个系统的读写比例很大,对用户而言,读操做多于写操做,并且比例很大,这就须要进一步改善架构,实现读写分离。
经过增长db proxy,实现读写分离。如图所示,2-2-1-3。
图2-2-1-3
考虑到读写比例大的特色,如图2-2-1-3所示,经过增长db proxy,以及master-slaves ,实现读写分离,全部写操做在master db上进行,全部读操做在其余slave dbs 上进行,这样作有如下好处:
(1) 缓解单台db的压力,减小单台db的负载
(2) 增长多个slave,当master db宕机以后,能够很快切换到slave 上,减小全部db同时宕机的风险。
不少用户访问,读与写操做比例很大,如图2-2-1-3所示,经过在web server层上增长缓存,能够提升访问速度。好比能够缓存css、jpg等静态文件。
增长缓存有两个好处:
(1) 加快用户的读请求访问速度。
(2) 缓解web server的压力。
虽然上述几个架构图,从各个层面缓解了服务器压力,可是,仍是存在当点故障的可能性。若是出现单点故障,没有在线物理设备提供使用,那该系统也不是一个高可用的系统。针对上述问题,增长在线物理备份设备,解决单点故障问题,如图2-2-1-4所示。
图 2-2-1-4
如图2-2-1-4所示,增长了负载均衡器的在线备用设备和db proxy在线备用服务器,这样作能够在负载均衡器出现故障的时候,启用在线备用设备;若是db proxy出现故障,也能够启用在线备用db proxy,实现故障转移。保证系统的高可用性。