您的位置:首页 > 运维架构 > 网站架构

大型网站演化历程

2016-03-02 11:05 295 查看
随着网站业务发展,一台服务器不能满足需求,需要进行应用和数据分离。应用和数据分离后需使用三台服务器:应用服务器(处理业务逻辑,高CPU),文件服务器(更大硬盘),数据库服务器(快速磁盘检索、数据缓存,更快的硬盘和更大内存)。但当用户访问增多是,数据库压力变大。
使用缓存改善网站性能,主要两种形式:缓存在应用服务器上和缓存在专门分布式缓存服务器上。缓存在应用器上快,但内存有限;分布式使用集群方式,部署大内存服务器作为专门缓存服务器。但单一应用服务器处理的请求连接有限,在高峰期,应用服务器成为整个网站的瓶颈。

通过负载均衡调度服务器,可将用户请求分发到应用服务器集群中的任何一台服务器上,使应用服务器的负载压力减少
当使用缓存后,绝大部分数据操作不通过数据库访问操作即可完成,但仍有一部分读操作和全部的鞋操作需要访问数据库,当用户达到一定规模后,数据库因为负载过高成为网站的瓶。所以通过数据库读写分离,减轻数据库负载。现在主流数据库均支持初从备份功能,应用服务器在写数据时,访问数据库,主数据库通过主从复制机制将数据更新同步到数据库,这样当应用数据库读数据时,通过从数据库获取数据。

由于不同地区的用户访问网站时,速度差别极大。可以通过CDN和反向代理两种方式解决此问题。CDN和反向代理的基本原理为缓存,区别在于CDN部署在网络提供商的机房,让用户在距离自己最近的机房获取数据。反向代理部署在网络中心机房,如果反向代理缓存这用户请求资源,就将其直接返回给用户。
如果到最后仍然不能满足需求,则需要使用分布式数据库,分布式文件系统。不到不得已是,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同物理服务器上。
当对数据存储和检索越来越复杂时,需要采用非关系数据库如NoSQL和非数据库查询技术如搜索引擎,其对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

当有日益负责的业务长江是,通过将整个网站业务划分为不同的产品线,然后拆分为不同的应用,通过超链接或者消息队列进行数据分发。这就是业务拆分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 网站 数据库