大型网站技术架构-大型网站架构演化

1、大型网站软件系统特点:

 • 高并发,大流量

• 高可用:7*24小时不间断

 • 海量数据 • 用户分布广泛,网络情况复杂

 • 安全环境恶劣:黑客攻击,信息泄露

 • 需求快速变更,发布频繁

 • 渐进式发展:大型系统都是从小网站开始逐渐发展的

 2、大型网站架构发展历程:

 1)初始阶段: -应用程序、数据库、文件等所有资源都在一台服务器上。

 2)应用服务和数据服务分离(缓解存储空间不足问题): -应用服务器处理大量业务逻辑(高性能CPU),数据库服务器快速磁盘检索和数据缓存(硬盘、内存),文件服务器需要存储大量用户上传的文件(更大硬盘)

 3)使用缓存改善网站性能(缓解数据库访问压力): -80%的业务访问集中在20%的数据上。把小部分数据缓存在内存中,减少数据库访问压力。 -两种缓存:应用服务器上的本地缓存(访问速度更快,受内存限制)、分布式缓存服务器上的远程缓存(集群,部署大内存服务器)。

 4)使用应用服务器集群改善网站的并发处理能力(解决单一应用服务器请求有限问题) 负载均衡调度服务器,将请求分发到应用服务器集群中任何一台服务器上。

 5)数据库读写分离(解决数据库负载压力过高问题): 主流数据库提供主从热备功能,配置两台数据库主从关系,可将一台数据库服务器的数据更新到另一台,实现读写分离。通过应用服务器端专门的数据访问模块,写数据访问主数据库,读数据访问从数据库。

6)反向代理和CDN加速网站响应(网络环境复杂,加速网站访问速度,减轻后端压力) CDN和反向代理基本原理都是缓存。 CDN:部署在网络提供商机房,用户请求时从最近网络提供商机房获取数据 反向代理:部署在网站中心机房,用户请求达到中心机房后先访问反向代理服务器 问题:CDN、反向代理服务器都存什么类型的数据?

 7)分布式文件系统和分布式数据库系统 分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常大的情况使用。更常用的是业务分库,不同业务的数据部署在不同物理服务器上。

 8)使用NoSQL和搜索引擎(非数据库查询技术) NoSQL和搜索引擎对可伸缩的分布式特性具有更好的支持。应用服务器通过统一的数据访问模块访问不同数据源数据。

 9)业务拆分 分而治之:将整个网站业务分成不同产品线。 一个网站拆分成不同应用,每个应用独立部署维护。应用之间通过超链接建立关系,也可通过消息队列进行数据分发。最多的还是通过访问同一个数据存储系统来构成关联的完整关系。

 10)分布式服务 每个应用系统都需要执行许多相同业务操作,可将共用业务提取出来独立部署。由这些可复用的业务链接数据库,提供公用业务服务,应用系统只管理用户界面,通过分布式服务调用共用业务服务。

你可能感兴趣的:(大型网站技术架构-大型网站架构演化)