网站框架演变

WEB服务框架升级

一. 项目描述nginx

随着公司业务的逐渐增大,lnmp的服务器没法知足日益增加的数据量,卡顿,延迟的现象时常出现,所以扩容,添加服务器势在必行.

二. 演变历程web

  1. 单机版LNMP
  2. 独立数据库服务器
  3. web服务器集群与Session保持
  4. 动静分离,数据库集群
  5. 各类缓存服务与业务模型

样例展现数据库

1.单机版LNMP

单机版LNMP.png
用户量少时使用,简单、成本低、存在单点故障。缓存

2.独立数据库服务器

独立数据库服务器是将网站静态文件、代码文件等资料与数据库分离的架构,当用户量增长时单机的处理能力有限,PHP或JAVA代码的执行须要消耗大量CPU资源,数据库的增删改查须要调用大量的内存资源,将二者分离能够减轻服务器的压力,其拓扑结构如图-2所示。
LNMP.png
Web服务器和数据库服务器的压力均可以获得有效改善,访问量有所增长。可是服务器依然存在单点故障问题。服务器

3.web服务器集群与Session保持

咱们能够经过Nginx、Haproxy代理服务器实现Web负载均衡集群,也可使用LVS调度器实现Web负载均衡集群。部署完Web集群后还须要考虑如何进行Session会话保持,方法不少,如:根据源IP保持,代理服务器重写Cookie信息,共享文件系统保存session,使用数据库共享session等等。
web1.png
可是若是只有一台调度器依然会致使单点故障的问题,所以还须要使用Keepalived或Heartbeat之类的软件进行高可用配置网络


对于网站内容而言能够分离为动态页面和静态页面,静态页面就须要数据文件,动态页面则须要CPU解析代码,须要消耗大量的CPU资源,所以能够将静态和动态分离为两组服务器,动态页面有脚本代码组成,是一种基于网页的应用程序
WEB服务器与session.pngsession

4.动静分离,数据库集群

随着服务器的增长,虽然性能与并发量获得了明显的提高,可是数据的一致性、管理的便利性成为了新的问题,所以就须要增长统一的存储服务器,实现数据的同步一致,可使用NFS,GlusterFS、Ceph等软件实现该功能
架构

但此时全部应用服务器都链接一台数据库服务器进行读写操做,并且后期随着数据库中的数据不断增长,会致使数据库成为整个网站的瓶颈!这就须要咱们对数据进行分库分表,建立数据库主从或者数据库集群,实现读写分离
动静分离,数据库集群.png并发

5.各类缓存服务与业务模型


对于静态数据咱们能够经过VARnish,squid或者nginx进行缓存,将数据缓存到距离用户更近的位置,构建CND(内容分发网络)框架.
对于传统的SQL数据库而言,咱们也能够经过增长NoSQL数据库,实现数据缓存的功能,提示数据库的访问速度.
对数据库的优化放到后面的文章负载均衡

相关文章
相关标签/搜索