`
vineet
  • 浏览: 19404 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转]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] 是他们的定制技术,用来加速页面显示。
Varnish Cache [9]用作HTTP代理。他们用这个的原因是高速和有效率。 [10].
用来搞定用户上传的十亿张照片的存储,其由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 PHP: http://developers.facebook.com/blog/post/358
[2] Thrift: http://thrift.apache.org/
[3] Memcached: http://memcached.org/
[4] Cassandra: http://cassandra.apache.org/
[5] HBase: http://hbase.apache.org/
[6] Scribe: https://github.com/facebook/scribe
[7] Scribe-HDFS: http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html
[8] BigPipe: http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
[9] Varnish Cache: http://www.varnish-cache.org/
[10] Facebook goes for Varnish: http://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 End: http://www.facebook.com/note.php?note_id=10150148835363920
[13] The Underlying Technology of Messages: https://www.facebook.com/note.php?note_id=454991608919
[14] The Underlying Technology of Messages Tech Talk: http://www.facebook.com/video/video.php?v=690851516105
[15] Facebook’s typeahead search architecture: http://www.facebook.com/video/video.php?v=432864835468
[16] Facebook Chat: http://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 Project: http://www.facebook.com/note.php?note_id=10150144039563920
[19] Open Compute Project: http://opencompute.org/
[20] Facebook’s architecture presentation at Devoxx 2010: http://www.devoxx.com
[21] Scaling Facebook to 500 millions users and beyond: http://www.facebook.com/note.php?note_id=409881258919

(全文完)
分享到:
评论

相关推荐

    facebook的架构(PDF)

    facebook 網站架构 PDF 文件

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

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

    浅析facebook的信息架构

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

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

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

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

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

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

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

    FaceBook架构设计

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

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

    第1章 架构概述 ...第4章 数据增长:Facebook平台的架构 4.1 简介 4.2 创建一个社会关系Web服务 4.3 创建社会关系数据查询服务 4.4 创建一个社会关系Web 门户:FBML 4.5 系统的支持功能 4.6 总结

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

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

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

    第三部分 系统架构 第7章 Xen和虚拟化之美 151 7.1 简介 151 7.2 Xenoservers 152 7.3 虚拟化的挑战 154 7.4 半虚拟化 155 7.5 Xen的变换形式 158 7.6 改变的硬件,改变的Xen 163 7.7 经验教训 165 7.8 ...

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

    健壮、优雅、灵活和易维护的软件架构是...第4章 数据增长:Facebook平台的架构 4.1 简介 4.2 创建一个社会关系Web服务 4.3 创建社会关系数据查询服务 4.4 创建一个社会关系Web 门户:FBML 4.5 系统的支持功能 4.6 总结

    架构之美精选版

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

    架构之美(中文版)

    第三部分 系统架构 第7章 Xen和虚拟化之美 151 7.1 简介 151 7.2 Xenoservers 152 7.3 虚拟化的挑战 154 7.4 半虚拟化 155 7.5 Xen的变换形式 158 7.6 改变的硬件,改变的Xen 163 7.7 经验教训 165 7.8 ...

    架构之美中文精选版

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

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

    本书目录 目录 ...第4章 数据增长:Facebook平台的架构 4.1 简介 4.2 创建一个社会关系Web服务 4.3 创建社会关系数据查询服务 4.4 创建一个社会关系Web 门户:FBML 4.5 系统的支持功能 4.6 总结

    架构之美(精选版)

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

    架构之美(106页)

    架构之美》围绕5个主题领域...我特别喜欢他们谈及的架构的广泛性,从Emacs到Facebook,从非常正式的系统到非常有灵气的系统。  简而言之,这是一本非常及时的书,对于软件架构的艺术、科学和实践是非常有益的贡献。”

    架构之美(精选版) Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design

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

Global site tag (gtag.js) - Google Analytics