日期:2014-05-18  浏览次数:20486 次

如何走出海量数据及访问量压力困境(一)
随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加
,大型企业网站正面临性能和高数据访问量的压力,而且对存储、安全以及信息检索等
等方面都提出了更高的要求…… 

  本文中,我想通过几个国外大型IT企业及网站的成功案例,从Web技术人员角度探讨
如何积极地应对国内大型网站即将面临的扩展(主要是技术方面,而较少涉及管理及营
销等方面)矛盾。 

一、 国外大型IT网站的成功之道 

(一) MySpace 

  今天,MySpace已经成为全球众口皆碑的社区网站之王。尽管一流和营销和管理经验
自然是每个IT企业取得成功的首要因素,但是本节中我们却抛弃这一点,而主要着眼于
探讨在数次面临系统扩张的紧急关头MySpace是如何从技术方面采取应对策略的。 

第一代架构—添置更多的Web服务器 

  MySpace最初的系统很小,只有两台Web服务器(分担处理用户请求的工作量)和一
个数据库服务器(所有数据都存储在这一个地方)。那时使用的是Dell双CPU、4G内存的
系统。在早期阶段,MySpace基本是通过添置更多Web服务器来对付用户暴增问题的。但
到在2004年早期,在MySpace用户数增长到五十万后,其数据库服务器已经开始疲于奔命
了。 

第二代架构—增加数据库服务器 

  与增加Web服务器不同,增加数据库并没那么简单。如果一个站点由多个数据库支持
,设计者必须考虑的是,如何在保证数据一致性的前提下让多个数据库分担压力。

  MySpace运行在三个SQL Server数据库服务器上—一个为主,所有的新数据都向它提
交,然后由它复制到其它两个;另两个数据库服务器全力向用户供给数据,用以在博客
和个人资料栏显示。这种方式在一段时间内效果很好——只要增加数据库服务器,加大
硬盘,就可以应对用户数和访问量的增加。

  这一次的数据库架构按照垂直分割模式设计,不同的数据库服务于站点的不同功能
,如登录、用户资料和博客。垂直分割策略利于多个数据库分担访问压力,当用户要求
增加新功能时,MySpace只需要投入新的数据库加以支持。在账户到达二百万后,MySpa
ce还从存储设备与数据库服务器直接交互的方式切换到SAN(存储区域网络)—用高带宽
、专门设计的网络将大量磁盘存储设备连接在一起,而数据库连接到SAN。这项措施极大
提升了系统性能、正常运行时间和可靠性。然而,当用户继续增加到三百万后,垂直分
割策略也变得难以维持下去。

第三代架构—转到分布式计算架构 

  几经折腾,最终,MySpace将目光移到分布式计算架构——它在物理上分布的众多服
务器,整体必须逻辑上等同于单台机器。拿数据库来说,就不能再像过去那样将应用拆
分,再以不同数据库分别支持,而必须将整个站点看作一个应用。现在,数据库模型里
只有一个用户表,支持博客、个人资料和其他核心功能的数据都存储在相同数据库。

  既然所有的核心数据逻辑上都组织到一个数据库,那么MySpace必须找到新的办法以
分担负荷——显然,运行在普通硬件上的单个数据库服务器是无能为力的。这次,不再
按站点功能和应用分割数据库,MySpace开始将它的用户按每百万一组分割,然后将各组
的全部数据分别存入独立的SQL Server实例。目前,MySpace的每台数据库服务器实际运
行两个SQL Server实例,也就是说每台服务器服务大约二百万用户。据MySpace的技术人
员说,以后还可以按照这种模式以更小粒度划分架构,从而优化负荷分担。 

第四代架构—求助于微软方案 

  2005年早期,账户达到九百万,MySpace开始用微软的C#编写ASP.NET程序。在收到
一定成效后,MySpace开始大规模迁移到ASP.NET。 

  账户达到一千万时,MySpace再次遭遇存储瓶颈问题。SAN的引入解决了早期一些性
能问题,但站点目前的要求已经开始周期性超越SAN的I/O容量——即它从磁盘存储系统
读写数据的极限速度。 

第五代架构—增加数据缓存层并转到支持64位处理器的SQL Server 2005 

  2005年春天,MySpace账户达到一千七百万,MySpace又启用了新的策略以减轻存储
系统压力,即增加数据缓存层——位于Web服务器和数据库服务器之间,其唯一职能是在
内存中建立被频繁请求数据对象的副本,如此一来,不访问数据库也可以向Web应用供给
数据。

  2005年中期,服务账户数达到两千六百万时,MySpace因为我们对内存的渴求而切换
到了还处于beta测试的支持64位处理器的SQL Server 2005。升级到SQL Server 2005和
64位Windows Server 2003后,MySpace每台服务器配备了32G内存,后于2006年再次将配
置标准提升到64G。

  事实上,MySpace的Web服务器和数据库仍然经常发生超负荷,其用户频繁遭遇“意
外错误”和“站点离线维护”等告示,他们不得不在论坛抱怨不停…… 

  MySpace正是在这样不断重构站点软件、数据库和存储系统中,才一步步走到今天。
事实上,MySpace已经成功解决了很多系统扩展性问题,其中存在相当的经验值得我们借
鉴。MySpace系统架构到目前为止保持了相对稳定,但其技术人员仍然在为SQL Server支
持的同时连接数等方面继续攻坚,尽可能把事情做到最好。 

(二) Amazon 

  亚马逊书店无疑是电子商务发展的里程碑。2000年到现在,世界网络业腥风血雨。
Amazon曾经成为网络泡沫的头号代表。如今,当这个“最大的泡沫”用几经易改的数字
把自己变成了坚实的IT巨人。 

历览Amazon发展过程,其成功经验在于,它创造性地进行了电子商务中每一环节的探索
,包括系统平台的建设,程序编写、网站设立、配送系统等等方面。用Amazon当家人贝
索斯的话说就是,“在现实世界的商店最有力的武器就是地段,地段,地段,而对于我
们来说最重要的三件事就是技术,技术,技术。” 

(三) eBay 

  eBay是世界闻名的拍卖网站,eBay公司通信部主管凯文?帕斯格拉夫认为,“eBay成
功的最重要原因在于公司管理和服务。” 

其成功的奥秘可以列举为以下几点: 

①敢为天下先—在网络尚不普及的时代,eBay率先进入网络拍卖领域; 

②依托虚拟商场所产生的特有的“零库存”是eBay公司取得成功的另一个重要原因。该
公司的核心业务没有任何库存风险,所有的商品都是由客户提供,它只需要负责提供虚
拟的拍卖平台—网络和软件。所以,eBay公司的财务报表上不会出现“库存费用”和“
保管费用”等。 

③自eBay公司成立开始,它就一直遵循两条“黄金原则”:建设虚拟社区,给网民以家
的感觉;保证网站稳定安全地运行。

------解决方案--------------------
第三代架构—转到分布式计算架构

这个要更详细就好了
------解决方案--------------------
过来看看,
缓慢的漂移~
------解决方案--------------------
好贴
-----