码迷,mamicode.com
首页 > Web开发 > 详细

大型网站演化历程

时间:2016-03-02 13:33:31      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:数据库访问   服务器   网站   规模   三台   

随着网站业务发展,一台服务器不能满足需求,需要进行应用和数据分离。应用和数据分离后需使用三台服务器:应用服务器(处理业务逻辑,高CPU),文件服务器(更大硬盘),数据库服务器(快速磁盘检索、数据缓存,更快的硬盘和更大内存)。但当用户访问增多是,数据库压力变大。

 

 使用缓存改善网站性能,主要两种形式:缓存在应用服务器上和缓存在专门分布式缓存服务器上。缓存在应用器上快,但内存有限;分布式使用集群方式,部署大内存服务器作为专门缓存服务器。但单一应用服务器处理的请求连接有限,在高峰期,应用服务器成为整个网站的瓶颈。

 

通过负载均衡调度服务器,可将用户请求分发到应用服务器集群中的任何一台服务器上,使应用服务器的负载压力减少

 

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

 

  由于不同地区的用户访问网站时,速度差别极大。可以通过CDN和反向代理两种方式解决此问题。CDN和反向代理的基本原理为缓存,区别在于CDN部署在网络提供商的机房,让用户在距离自己最近的机房获取数据。反向代理部署在网络中心机房,如果反向代理缓存这用户请求资源,就将其直接返回给用户。

  如果到最后仍然不能满足需求,则需要使用分布式数据库,分布式文件系统。不到不得已是,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同物理服务器上。

  当对数据存储和检索越来越复杂时,需要采用非关系数据库如NoSQL和非数据库查询技术如搜索引擎,其对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

 

  当有日益负责的业务长江是,通过将整个网站业务划分为不同的产品线,然后拆分为不同的应用,通过超链接或者消息队列进行数据分发。这就是业务拆分。


大型网站演化历程

标签:数据库访问   服务器   网站   规模   三台   

原文地址:http://9732420.blog.51cto.com/9722420/1746642

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!