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

Facebook 网站架构总结

阅读更多

Facebook是一个社会化网络站点,它于2004年2月4日上线。每个用户在facebook上有自己的档案和个人页面,用户之间可以通过各种方式发生互动:留言、发站内信,评论日志。虽然目前在国内无法访问facebook,但其强悍的技术架构还是值得我们去研究分析和总结的,或许我们可以从中得到一点启发。

 

facebook的设计原则是模块化原则、整合化原则、清晰化原则,其架构设计的目标是简单高效。facebook的架构是基于LAMP,差不多是用LAMP实现的最大的动态站点,以下是facebook架构图概览:



PHP经验:

《Facebook 的PHP性能与扩展性》

 

MySql经验:

 

主要用于做Key-Value类型的存储操作,数据随机分布在多台逻辑实例上,访问多数基于全局ID。
逻辑实例分散在多台物理主机上(超过1800台),负载均衡在物理层进行。
不做读复制。尽量不做逻辑数据迁移(成本太高)。
不做JOIN操作(豆瓣在QCon上也阐述了这一点)。数据是随机分布的,关联操作反而带来了极大的复杂度。
对于数据访问,主要的操作集中在最新的数据上,针对这部分做优化,旧的数据进行归档。

 

在中心DB绝不存储非静态数据。

 

使用服务或者Memcached进行全局查询。

 

Memcached经验:

 

一个比较有价值的是关于个人页面数据的获取的描述。这个就完全是需要做单页面Benchmark的细致活儿了,可能还需要产品经理能够理解工程师的"抵抗"。

 

获取个人信息数据:通过Cache,隐性通过用户所在的DB获取(基于User-ID获知DB)

 

获取朋友连接信息:通过Cache,否则的话通过DB(基于User-ID获知DB)

 

并行抓取每个朋友的10个照片相册ID,从Cache抓取,如果失效,再从DB抓取(基于相册ID)

 

并行抓取最近相册中的照片数据

 

运行PHP把整个业务逻辑跑出来

 

 

 

FacebookNewsFeed的架构示意图:

 

 

 

  Facebook搜索功能的架构示意图 

 

参考原文:http://www.dbanotes.net/arch/facebook_arch_note.html

分享到:
评论

相关推荐

    facebook的信息架构评析

    总结来说,Facebook的信息架构设计不仅体现了对用户需求的深刻理解,还展示了对设计原则的灵活运用。随着时间的推移,Facebook不断调整和完善其架构,以适应不断增长的功能和用户需求,这为我们提供了一个关于如何...

    Facebook早期架构设计以及缓存系统

    总结来说,Facebook早期的架构设计和缓存系统展示了如何处理大规模、高并发的互联网服务。这些技术和经验对于任何希望构建大型分布式系统的IT从业者来说都是宝贵的知识财富。通过不断优化和创新,Facebook成功地构建...

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

    特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,MySpace,Twitter,国内如优酷网等大型网站的技术架构(本文重点分析优酷网的技术架构),以飨读者。本文着重凸显每一幅图的精彩之处与其背后含义...

    facebook的架构设计应用到企业级开发中.doc

    以下是对Facebook架构设计应用到企业级开发中的深入分析: 1. **开放平台与应用程序(Apps)模式**: Facebook的开放平台允许第三方开发者创建应用程序,这些应用可以无缝地融入Facebook的生态系统,为用户提供...

    理解_Facebook_应用程序的架构

    总结来说,Facebook应用程序的架构涉及到了前端与后端的交互、社交功能的整合、以及多种应用类型的设计。通过Facebook的API和Connect服务,开发者可以构建出富有创新和社交性的应用,为用户提供丰富的互动体验,同时...

    各大公司架构,豆瓣网,facebook,淘宝

    【Facebook架构】 Facebook是全球最大的社交网络平台,其架构设计以处理海量用户数据和实时交互著称: 1. **Hadoop/BigTable**:Facebook使用这些大数据存储系统处理用户产生的海量数据。 2. **Tornado**:...

    大型网站架构文档

    总结,大型网站架构是一个复杂的系统工程,涉及到的技术和策略多种多样,如Facebook、淘宝、豆瓣等大型网站的成功架构设计,为我们提供了宝贵的实践经验。深入理解和掌握这些知识,对于构建高并发、高可用的互联网...

    SNS网站架构PPT文档.pptx

    总结来说,构建一个成功的SNS网站架构需要综合考虑多种因素,包括但不限于架构模式、服务化、负载均衡、分布式存储和文件系统优化。不断演进的技术和设计理念使得SNS网站能够承载亿级用户,提供流畅的用户体验,同时...

    架构之美(中文清晰完整版)

    最后,本书对架构之美进行了总结,强调了在软件开发过程中,架构设计不仅需要遵循技术规范,还需要在美学和创新性上有所追求。作者们通过分析不同类型的系统,展示了架构设计在实际应用中的多样性和深度。 综上所述...

    Facebook 最新面试题总结

    - 通过项目的架构图展示以及详细讨论项目设计的各个环节,评估项目的质量,并举例说明技术难题解决、团队成员间的沟通和影响力。 9. **边缘情况(Corner Cases)**: - 应聘者需要考虑输入为数组为空、NULL或非法...

    Facebook Message

    作者们总结了层次化架构的利与弊,并提出了针对层次化架构可能带来的性能下降和可靠性的担忧。 ### 结论 研究最后提出了结论,虽然文章没有给出完整的结论,但是根据研究的展开,我们可以推测研究者可能会总结HDFS...

    架构之美(精选版)电子书

    - **总结**:归纳Facebook平台架构的关键成功因素。 #### 三、推荐序亮点 - **推荐序一**:《大道至简》作者周爱民分享了他对架构的理解,强调架构是一个持续的过程而非静态的产品,同时指出架构师头脑中的清晰...

    Facebook开发HDFS和HBase的新进展

    2. **Federation支持**:为了应对数据存储规模的增长,Facebook实现了NameNode的Federation架构,允许数据跨多个NameNode分布,有效提升了系统的可扩展性和存储容量。 3. **RAID存储优化**:Facebook引入了基于Reed...

    简单的facebook第三方登录Demo.zip

    在Facebook开发者平台上,还需要设置应用的“网站”平台,并在“网站设置”中填入你的应用网址。 接下来,我们要在SpringMVC项目中集成Facebook SDK。Facebook提供了Java版的SDK,可以方便地通过Maven或Gradle添加...

Global site tag (gtag.js) - Google Analytics