本次架构中须使用负载均衡,但是在配置负载均衡服务器的时候考虑到,担任负载均衡的服务器可能崩溃,故应在配置多台负载均衡服务器的同时,采用一个高可用的服务器的keeplived让负载均衡服务器崩溃时及时启用其他同等职责服务器.
负载均衡用来对web集群进行均衡分配,减少服务器的压力,同时web集群内服务器要通过redis或者memcache来共享session
数据库使用分布式布置,采用读写分离,建立主数据库来执行写操作,从数据库来执行读操作,还可以专门建立运算统计数据库,将多种操作分开,降低数据压力,提高执行速度.多个数据库通过binlog来同步.
建立分布式缓存机制,要进行反向代理缓存、nginx缓存、gzip压缩、页面静态化缓存、模板引擎缓存、数据库字段缓存以及PHP的opcache缓存(减少PHPzend引擎执行)
对于静态资源采用动静分离,将静态资源与存在专门的服务器上,仅需配置nginx就可,同时还可以使用cdn加速,将访问量在一定标准的静态资源筛选出来,将链接交于cdn服务商,存在cdn边缘节点上,提高静态资源访问速度。同时为防止cdn边缘节点崩溃,cdn服务商会有多级缓存,最次还可以使用自己存储队列。
一个大体的流程为:高可用服务器保障负载均衡服务器,负载均衡服务器对web集群进行均衡分配,减少服务器压力,web集群服务器通过共享session来实现当服务器崩溃时候,用户能够无需再次登录,web集群服务器与分布式缓存相连接,当缓存之中存在需要的数据的时候,无需访问数据库,能提高响应速度。与web集群链接的分布式数据库通过读写分离,分布式布局,降低数据库压力,采用binlog同步数据,主从数据库可随时切换。静态资源采用动静分离原则布置,同时可使用cdn加速,将访问量高的静态资源交由cdn服务商,通过cdn边缘节点来访问。同时cdn服务商有自己的多级缓存可以保障边缘节点崩溃时,不影响访问。最差还可以继续访问自己的存储队列。
该架构可以承载中型网站的访问量,最高可以承载亿次pv。