`

Facebook 的系统架构

 
阅读更多

来源http://www.quora.com/What-is-Facebooks-architecture (由Micha?l Figuière回答)

根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下:

  • Web 前端是由 PHP 写的。Facebook 的 HipHop [1] 会把PHP转成 C++ 并用 g++编译,这样就可以为模板和Web逻贺业务层提供高的性能。
  • 业务逻辑以Service的形式存在,其使用Thrift [2]。这些Service根据需求的不同由PHP,C++或Java实现(也可以用到了其它的一些语言……)
  • 用Java写的Services没有用到任何一个企业级的应用服务器,但用到了Facebook自己的定制的应用服务器。看上去好像是重新发明轮子,但是这些Services只被暴露给Thrift使用(绝大所数是这样),Tomcat太重量级了,即使是Jetty也可能太过了点,其附加值对Facebook所需要的没有意义。
  • 持久化由MySQL, Memcached [3], Facebook 的 Cassandra [4], Hadoop 的 HBase [5] 完成。Memcached 使用了MySQL的内存Cache。Facebook 工程师承认他们的Cassandra 使用正在减少,因为他们更喜欢HBase,因为它的更简单的一致性模型,以到其MapReduce能力。
  • 离线处理使用Hadoop 和 Hive。
  • 日志,点击,feeds数据使用Scribe [6],把其聚合并存在 HDFS,其使用Scribe-HDFS [7],因而允许使用MapReduce进行扩展分析。

 

  • BigPipe [8] 是他们的定制技术,用来加速页面显示。
  • 用来搞定用户上传的十亿张照片的存储,其由Haystack处理,Facebook自己开发了一个Ad-Hoc存储方案,其主要做了一些低层优化和“仅追加”写技术 [11].
  • Facebook Messages 使用了自己的架构,其明显地构建在了一个动态集群的基础架构上。业务逻辑和持久化被封装在一个所谓的’Cell’。每个‘Cell’都处理一部分用户,新的‘Cell’可以因为访问热度被添加[12]。 持久化归档使用HBase [13]。
  • Facebook Messages 的搜索引擎由存储在HBase中的一个倒置索引的构建。 [14]
  • Facebook 搜索引擎实现细节据我所知目前是未知状态。
  • Typeahead 搜索使用了一个定制的存储和检索逻辑。 [15]
  • Chat 基于一个Epoll 服务器,这个服务器由Erlang 开发,由Thrift存取 [16]

关于那些供给给上述组件的资源,下面是一些信息和数量,但是有一些是未知的:

  • Facebook估计有超过60,000 台服务器[16]。他们最新的数据中心在俄勒冈州的Prineville,其基于完全自定设计的硬件[17] 那是最近才公开的 Open Compute 项目[18]。
  • 300 TB 的数据存在 Memcached 中处理 [19]
  • 他们的Hadoop 和 Hive 集群由3000 服务器组成,每台服务器有8个核,32GB的内存,12TB的硬盘,全部有2万4千个CPU的核,96TB内存和36PB的硬盘。 [20]
  • 每天有1000亿的点击量,500亿张照片, 3 万亿个对象被 Cache,每天130TB的日志(2010年7月的数据) [21]

参考引用

[1] HipHop for PHPhttp://developers.facebook.com/blog/post/358
[2] Thrifthttp://thrift.apache.org/
[3] Memcachedhttp://memcached.org/
[4] Cassandrahttp://cassandra.apache.org/
[5] HBasehttp://hbase.apache.org/
[6] Scribehttps://github.com/facebook/scribe
[7] Scribe-HDFShttp://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html
[8] BigPipehttp://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
[9] Varnish Cachehttp://www.varnish-cache.org/
[10] Facebook goes for Varnishhttp://www.varnish-software.com/customers/facebook
[11] Needle in a haystack: efficient storage of billions of photos: http://www.facebook.com/note.php?note_id=76191543919
[12] Scaling the Messages Application Back Endhttp://www.facebook.com/note.php?note_id=10150148835363920
[13] The Underlying Technology of Messageshttps://www.facebook.com/note.php?note_id=454991608919
[14] The Underlying Technology of Messages Tech Talkhttp://www.facebook.com/video/video.php?v=690851516105
[15] Facebook’s typeahead search architecturehttp://www.facebook.com/video/video.php?v=432864835468
[16] Facebook Chathttp://www.facebook.com/note.php?note_id=14218138919
[17] Who has the most Web Servers?http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/
[18] Building Efficient Data Centers with the Open Compute Projecthttp://www.facebook.com/note.php?note_id=10150144039563920
[19] Open Compute Projecthttp://opencompute.org/
[20] Facebook’s architecture presentation at Devoxx 2010http://www.devoxx.com
[21] Scaling Facebook to 500 millions users and beyondhttp://www.facebook.com/note.php?note_id=409881258919

分享到:
评论
1 楼 nodejs 2012-06-09  
FB果然不一般,学习了。

相关推荐

    facebook的架构(PDF)

    facebook 網站架构 PDF 文件

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

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

    FaceBook架构设计

    你的数据结构⋯⋯”信息架构师坚信,处于大多数系统核心的是数据,而不是算法。随 着Web的兴起,用户产生和消费的数据比以往更加推动了信息技术的使用。Web用户不 会去接触QuickSort(快速排序)。他们会访问一个...

    浅析facebook的信息架构

    (在1024分辨率里,图片宽度不能完全显示,建议单独打开图片看)大架构的发展和变迁过程:1、最开始,facebook的整个信息架构主要分成三个部分:“系统核心导航区”(如上图,蓝色部分。包括LOGO和两个全部导

    浅谈Facebook的服务器架构(组图)

    导读:毫无疑问,作为全球最领先的社交网络,Facebook的高性能集群系统承担了海量数据的处理,它的服务器架构一直为业界众人所关注。Facebook的架构可以从不同角度来换分层次。一种是:一边是PHP整的经典的LAMPstack...

    Facebook基础知识

    六、Facebook 广告系统结构 七、Facebook 广告主要参数 一、继承FaceBook SDK前置工作: 1、阅读相关文档:https://developers.facebook.com/docs/android/getting-started… 2、进入FaceBook开发者平台的页面,创建...

    Facebook数据仓库揭秘:RCFile高效存储结构

    本文介绍了Facebook公司数据分析系统中的RCFile存储结构,该结构集行存储和列存储的优点于一身,在MapReduce环境下的大规模数据分析中扮演重要角色。Facebook曾在2010ICDE...

    架构之美(全球19位顶尖架构师智慧结晶)

     ·facebook的架构如何建立在以数据为中心的应用生态系统之上  ·xen的创新架构对操作系统未来的影响  ·kde项目的社群过程如何让软件的架构从粗略的草图成为漂亮的系统..  ·蔓延的特征如何让gnu emacs获得从未...

    云计算系统架构文档 汇总上

    云计算系统架构文档 上 DevOps 从云端到地面 熊节 pdf DevOps 让持续交付成为可能 乔梁 pdf eBay技术平台:掌控十亿级交易数据 Tony Ng pdf Facebook大数据实时分析案例分享 Uri pdf Java EE 7 平台:应云而生 ...

    架构之美架构之美架构之美

    1.3 架构结构 1.4 好的架构 1.5 美丽的架构 第2章 两个系统的故事 2.1 混乱大都市 2.2 设计之城 2.3 说明什么问题 2.4 轮到你了 第3章 伸缩性架构设计 3.1 简介 3.2 背景 3.3 架构 3.4 关于架构的思考 第4章 ...

    架构之美(精选版) - 健壮、优雅、灵活和易维护的软件架构是怎样炼成的?

    1.3 架构结构 1.4 好的架构 1.5 美丽的架构 第2章 两个系统的故事 2.1 混乱大都市 2.2 设计之城 2.3 说明什么问题 2.4 轮到你了 第3章 伸缩性架构设计 3.1 简介 3.2 背景 3.3 架构 3.4 关于架构的思考 第4章 ...

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

    1.3 架构结构 23 1.4 好的架构 27 1.5 美丽的架构 28 致谢 30 参考文献 31 第2章 两个系统的故事:现代软件神话 33 2.1 混乱大都市 34 2.2 设计之城 40 2.3 说明什么问题 47 2.4 轮到你了 48 参考文献 48 第...

    架构之美英文完整版(Beautiful.Architecture)

    《架构之美》Facebook的架构如何建立在以数据为中心的应用生态系统之上。Xen的创新架构对操作系统未来的影响。KDE项目的社区过程如何让软件的架构从粗略的草图演进为漂亮的系统。不断滋长的特征如何让GNUEmacs获得...

    Facebook AI实验室开源的相似性搜索库Faiss.zip

    在处理图像或视频等复杂数据时会涉及专用数据库系统,而相似性搜索(similarity search)则可以在专用数据库系统中找寻应用。但问题是,这些复杂数据通常用高维特征表示,而且需要特定的索引结构。因此,Facebook的...

    架构之美中文版(精选版)

    1.3 架构结构 1.4 好的架构 1.5 美丽的架构 第2章 两个系统的故事 2.1 混乱大都市 2.2 设计之城 2.3 说明什么问题 2.4 轮到你了 第3章 伸缩性架构设计 3.1 简介 3.2 背景 3.3 架构 3.4 关于架构的思考 第4章 ...

    架构之美(中文版)

    1.3 架构结构 23 1.4 好的架构 27 1.5 美丽的架构 28 致谢 30 参考文献 31 第2章 两个系统的故事:现代软件神话 33 2.1 混乱大都市 34 2.2 设计之城 40 2.3 说明什么问题 47 2.4 轮到你了 48 参考文献 48 第...

    架构之美中文精选版

     ·facebook的架构如何建立在以数据为中心的应用生态系统之上  ·xen的创新架构对操作系统未来的影响  ·kde项目的社群过程如何让软件的架构从粗略的草图成为漂亮的系统..  ·蔓延的特征如何让gnu emacs获得...

    架构之美精选版

    世界顶级软件专家揭秘软件设计之美,《架构之美》 pdf中文精选版将带你了解架构概述、两个系统的故事:现代软件神话、伸缩性架构设计、数据增长、Facebook平台的架构、支付宝架构师:如何看到一滴水的美丽。架构是一...

Global site tag (gtag.js) - Google Analytics