1、初始阶段的网站架构
初始阶段的网站架构比较简单,通常应用程序、数据库、文件等所有资源都在一台服务器上,通常使用Linux PHP MySQL Apache就可以完成整个项目部署
2、应用服务和数据服务分离
随着网站业务的发展,一台服务器逐渐不能满足需求之后,此时则需要将应用和数据分离,各个职责变得更加专一,网站的性能得到进一步的提升,随着用户的继续增加,也需要对网站架构进一步优化。例如,应用服务器可处理大量的业务逻辑,需要更好更快更强大的CPU;数据库服务器,需要快速的进行磁盘检索和数据缓存,需要更快的硬盘和更大的内存;文件服务器需要存储用户上传的文件资源,需要更大的硬盘存储空间。
3、使用缓存改善网站性能
网站的缓存可以分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度会快一些,但是受应用服务器内存限制,缓存数据量很有限,而且会出现内存争用的情况;远程分布式缓存可使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务。
4、使用应用服务器集群改善网站的并发处理能力
因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。
5、数据库读写分离
当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。此时可利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。应用服务器在写操作的时候,访问主数据库,主数据库通过主从复制机制把数据同步更新到从数据库。
6、使用反向代理和CDN加上网站相应
提高网站的访问速度,主要手段有使用CDN和反向代理。CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。
7、使用分布式文件系统和分布式数据库系统
分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上。
8、使用NoSQL和搜索引擎
搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。
9、业务拆分
对于大型网站,可以分而治之,把整个网站的业务分为不同的模块,分别由不同的团队来负责,同时将一个网站根据模块划分拆分成多个应用,每个应用进行单独的部署和维护,应用之间通过超链接建立关系,最后通过相同的数据存储系统来构成一个互相关联的完整系统。
10、分布式服务
分布式服务可对相同的业务进行提取,独立部署,把这些可重用的业务和连接数据库等,提取出来作为公共业务服务,而应用系统只需要通过分布式服务访问公共业务服务完成业务操作。
了解更多服务器及资讯,请关注梦飞科技官方网站,感谢您的支持!