`
wbj0110
  • 浏览: 1600799 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

MySpace架构

阅读更多

说起MySpace,可能很多人对他印象很深,MySpace.com成立于2003年9月,是目前全球最大的社交网站。它为全球用户提供了一个集交友、个人信息分享、即时通讯等多种功能于一体的互动平台,同时他也是.NET应用最出色的网站之一。下面我们一起来回顾一下MySpace架构的改革之路,或许我们能从中得到一点点架构方面的经验和教训。

1、50万用户

最早myspace网站由一台数据库服务器和两台Web服务器构成,此后一段时间又加了几台web服务器。但在2004年早期,用户增加到50万时一台数据库服务器就显得力不从心了。

他们设计了第一代架构,在此架构中他们运行3个SQL Server2000服务器,一个为主,所有的新数据都提交给他,然后再复制给其他两个数据库服务器。另外两台服务器用来给用户提供信息浏览,也就是只做数据读取。在一段时间内效果不错,只需要增加数据库服务器,扩大硬盘,就可以应对用户数和访问量的增加了。

2、100万-200万用户

当达到这个数字时,myspace数据库服务器遇到了I/O瓶颈,即他们存取数据的速度跟不上了。而这时据他们第一个架构只要5个月。有人花5分钟都无法完成留言,很多用户认为myspace完蛋了。

这个时候新的架构被快速提出来了,这一次他们把数据库架构按照分割模式设计,以网站功能分出多种,如登陆、现实用户资料、博客信息、等分门别类存储在不同的数据库 服务器里。这种垂直分割策略利于多个数据库分担访问压力(天涯曾经就这么做过)。后来myspace从存储设备与数据库服务器直接交互的方式SAN(用高 带宽和专门设计的网络将大量磁盘存储设备链接在一起,而数据库链接到SAN)。

3、300万用户

到300万用户时,这种架构开始也不行了,因为每个数据库都必须有每个用户表副本,意识是一个用户注册后,他的信息会分别存在每个数据库中,但这种做法有 可能某台数据库服务器挂掉了,用户使用一些服务可能会有问题。另一个问题是比如博客信息增长太快,专门为他服务的数据库的压力过大,而其他一些功能很少被 使用又在闲置。这就好像有人忙的要死,有人闲的要死。

于是他们购买了更好更贵的服务器来解决管理更大数据库的问题。但专家预测他们即使昂贵专业的服务器到最后也会不堪重负,他们必须调整架构而不是掏钱买更 好的服务器。于是他们的第三代架构出现了。分布式计算架构,他们分布众多服务器,但从逻辑上看成是一台服务器。拿数据库来说,不能再按功能拆分了,看成只 有一个数据库服务器。数据库模型中维护一个用户表、博客信息表、等等同看作在一个数据库服务器中。

然后他们开始把用户按每百万一组分割,每一组的用户访问指定的数据库服务器。另外一个特殊服务器保存所有用户的帐号和密码。他们的设计师说如果按照这种模式以更小粒度划分架构是可以进一步优化负荷负担的(50万用户为一组 或者更少)。

4、900万-1700万用户

myspace在这个时候把网站代码全部改为.net语言,事实证明网站跑的比以前快了很多、执行用户的请求消耗非常少的资源,后来他们把所有的程序都改成.net了。但问题到1000万时还是出来了。

用户注册量太快,按每100万分割数据库的策略不是那么完美,比如他们的第7台数据库服务器上线仅仅7天就被塞满了。主要原因是佛罗里达一个乐队的 歌迷疯狂注册。而且某台数据库服务器可以在任何原因 任何时候遭遇特别大的负荷。他们的解决办法是人工把崩溃的数据库里的用户迁移走。但这不是一个好办法。

这个时候myspace购买了3PAdata设备,他的牛逼之处是真正把所有的数据库看成一个整体。他会根据情况把负荷平均分配出去,比如当用户提交一个信 息,他会看哪个数据区域空闲然后分配给他,然后会在其他多处地方留有副本,不会出现一台数据库服务器崩溃,而这台数据库里的信息没有办法读取的情况,这样 做看起来好极了。

另外他们增加了缓存层,以前用户查询一个信息,就请求一次数据库,现在当一个用户请求数据库后,缓存层就会保留下来一个副本,当其他用户再访问时就不需要再请求数据库了,直接请求缓存就够了。

5、2600万用户

他们把服务器更换到运行64位的服务器,这样服务器上可最多挂上32G内存,这无疑有提升了网站性能,用户感觉这个网站开始稳定快起来了。但一个新问题意外出现了。他们放数据库服务中心的洛杉矶全市停电了。这导致整个系统停止运行长达12个小时。

这时他们实现了在地理上分布多个数据中心以防止洛杉矶事件再次出现,在几个重要城市的数据中心的部署可以防止某一处出现故障,整个系统照样提供服务,如果几个地方都出现故障,那么这就意味着国家出现了重大灾难,这种几率是非常低的。

6、总结

这个架构变化升级相当有意思,架构随着用户量的提升作仓促的变化,但又恰到好处,看来MySpace又验证了一句古话“有压力才会有动力”。同时他给我们后人的启示是要尽早发现系统的瓶颈,设计师在设计时要有前瞻思想,否则今后有可能也要这样仓促的升级你的产品。

分享到:
评论

相关推荐

    Dan Farino谈MySpace架构

    《Dan Farino谈MySpace架构:大规模在线社区的技术挑战与解决方案》 MySpace,作为曾经全球最大的社交网络之一,其背后的系统架构和技术解决方案一直是IT行业内的热门话题。在InfoQ的访谈中,MySpace首席系统架构师...

    MYSpace架构设计

    ### MYSpace架构设计 #### 一、架构概述与历史 MYSpace作为一个知名的社交平台,在其发展历程中经历了从无到有、从小到大的过程。本文档将介绍MYSpace的空间建设思路及其技术架构的发展历程。 #### 二、初始阶段...

    大型网站架构设计与分析案例汇总.pptx

    MySpace架构演变: 1. 第一代架构:随着用户增长,MySpace通过添加Web服务器来扩展,但数据库服务器成为瓶颈。 2. 第二代架构:引入主-从数据库复制模式,增加数据库服务器以分摊负载。新数据写入主数据库,再同步到...

    高性能高并发服务器架构大全

     Myspace架构历程 58  eBay 的数据量 64  eBay 的应用服务器规模 67  eBay 的数据库分布扩展架构 68  从LiveJournal后台发展看大规模网站性能优化方法 70 一、LiveJournal发展历程 70 二、...

    从MySpace的六次重构经历,来认识分布式系统到底该如何创建MySpace技术架构

    从MySpace的六次重构经历,来认识分布式系统到底该如何创建MySpace技术架构

    架构设计from infoQ

    - **DAN FARINO谈MYSPACE架构**:通过与DAN FARINO的访谈,深入探讨了MYSPACE网站架构的设计理念和技术选择,为读者提供了关于大规模社交网络平台架构设计的实际案例。 - **微软弃用ORACLECLIENT命名空间**:分析了...

    大型网站架构之_MySpace的体系架构.doc

    MySpace的体系架构展示了大型网站如何应对海量用户和高并发挑战。这个社交网络平台在初期遇到了性能问题,但通过不断的技术迭代和优化,逐步解决了这些问题。以下是从文档中提炼出的关键知识点: 1. **垂直分割与...

    知名互联网公司网站架构图

    ,YouTube,MySpace,Twitter,国内如优酷网等大型网站的技术架构(本文重点分析优酷网的技术架构),以飨读者。本文着重凸显每一幅图的精彩之处与其背后含义,而图的说明性文字则从简从略。ok,好好享受此

    从MySpace的六次重构经历,来认识分布式系统到底该如何创建

    - **初始架构**:MySpace最初采用的是简单的三服务器架构,包括两台Web服务器和一台数据库服务器。这种架构可以满足初期的需求,但随着用户数量的增长,很快就暴露出不足之处。 - **问题出现**:随着用户数达到50万...

    商业网站架构演变

    亿万用户网站MySpace的成功秘密、Flickr架构、YouTube网站架构、PlentyOfFish 网站架构学习、WikiPedia技术架构学习笔记。这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的...

    系统架构-珍藏资料

    MySpace的架构演变历程,为我们提供了宝贵的经验和教训,强调了系统架构前瞻性和不断调整的重要性。 总之,系统架构是连接业务需求和技术实现的桥梁,它不仅要求架构师具备深厚的技术功底,还需要他们具备良好的...

    大规模网站架构.ppt

    例如,Facebook、Yahoo选择了PHP,淘宝和网易使用Java,Google则采用Python,MySpace则基于.NET。这些案例表明,无论哪种编程语言,都可以通过合理的架构设计来实现大规模网站的需求。 网站架构的主要目标包括高...

    高并发量网站基础架构设计.doc

    MySpace的案例提供了一个实用的参考,展示了从简单架构到复杂分布式架构的演进过程,以及如何通过不断优化和技术升级来应对高并发的挑战。在实际项目中,我们应当根据自身业务需求,灵活运用这些设计理念和技术手段...

    超大型网站架构设计模型

    为了解决这一问题,Myspace进行了多次架构改进: 1. 第一次里程碑:50万账户 Myspace将数据库服务器从一个增加到三个,采用主从复制的模式,即一个主数据库接收新数据并同步到其他两个从数据库。这种设计在短期内...

    门户网站系统运维架构规划设计实战

    【门户网站系统运维架构规划设计实战】课程主要探讨了大型互联网企业如何应对用户数量快速增长下的系统架构挑战,以Myspace和Sohu社区为例,详细解析了系统架构的演进过程和设计策略。在这个过程中,CDN(内容分发...

    高并发量网站基础架构

    6. **技术栈的演进**:MySpace从最初的简单架构逐步过渡到使用更高级的技术,如C#和ASP.NET,这反映了技术栈在应对高并发场景中的重要性。选择正确的技术和框架可以显著提高系统的性能和可维护性。 在设计高并发量...

    知名网站架构相关文档收集A

    这些文档涵盖了多个知名在线平台的架构设计和实践经验,如豆瓣(Douban)、LinkedIn、Facebook、eBay和MySpace等。这些公司在各自的领域内都取得了显著的成功,他们的架构设计为IT行业的专业人士提供了宝贵的学习资源...

    大型高并发高负载网站的系统架构.pdf

    1. **添置更多的Web服务器**:MySpace在初期采用简单的架构,通过增加Web服务器分担用户请求。但当用户数量达到一定规模,单一数据库服务器成为瓶颈,需要进行数据库层面的优化。 2. **增加数据库服务器**:MySpace...

Global site tag (gtag.js) - Google Analytics