`
yaochaosheng
  • 浏览: 52698 次
  • 性别: Icon_minigender_1
  • 来自: guangzhou
文章分类
社区版块
存档分类
最新评论

FaceBook 架构设计与技术使用

阅读更多

转自http://leves.iteye.com/blog/1041890

 

根据我现有的阅读和谈话,我所理解的今天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

(全文完)

分享到:
评论

相关推荐

    FaceBook架构设计

    当前大多数计算机科学的学生将Fred Brooks的这句话理解为:“给我看你的...着Web的兴起,用户产生和消费的数据比以往更加推动了信息技术的使用。Web用户不 会去接触QuickSort(快速排序)。他们会访问一个数据仓库。

    Facebook 网站架构总结

    Facebook是一个社会化网络站点,它于2004年2月4日上线。每个用户在facebook上有自己的档案和...虽然目前在国内无法访问facebook,但其强悍的技术架构还是值得我们去研究分析和总结的,或许我们可以从中得到一点启发。

    中外著名互联网公司架构设计

    著名网站架构设计(包括Facebook Google Amazon 共计123篇) 互联网公司技术架构系列资料-新浪.百度.腾讯.淘宝

    一线头部互联网公司技术架构设计资料合集.zip

    Google、Facebook、eBay、Amazon、阿里、百度、腾讯等头部互联网公司的技术架构设计方案合集

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

    个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,...

    Hadoop技术内幕:深入解析YARN架构设计与实现原理

    全书共四部分13 章:第一部分(第1~2 章)主要介绍了如何获取、阅读和调试Hadoop 的源代码,以及YARN 的设计思想、基本架构和工作流程;第二部分(第3~7 章)结合源代码详细剖析和讲解了YARN 的第三方开源库、底层...

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

    第3章 伸缩性架构设计 51 3.1 简介 51 3.2 背景 52 3.3 架构 56 3.4 关于架构的思考 61 第4章 记忆留存 67 4.1 功能和约束 68 4.2 工作流 69 4.3 架构关注点 70 4.4 用户反应 90 4.5 结论 90 参考文献 90...

    大型网站的架构设计图分享

    个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,...

    架构之美(中文版)

    第3章 伸缩性架构设计 51 3.1 简介 51 3.2 背景 52 3.3 架构 56 3.4 关于架构的思考 61 第4章 记忆留存 67 4.1 功能和约束 68 4.2 工作流 69 4.3 架构关注点 70 4.4 用户反应 90 4.5 结论 90 参考文献 90...

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

    阿里巴巴中文站架构设计实践 何崚 pdf">云计算系统架构文档 上 DevOps 从云端到地面 熊节 pdf DevOps 让持续交付成为可能 乔梁 pdf eBay技术平台:掌控十亿级交易数据 Tony Ng pdf Facebook大数据实时分析案例...

    《社区产品架构与设计意见指导书》PDF

    产品设计者需要熟练掌握网上各种产品的表现、特点、利弊、技巧这叧是一个设计者最基本的技能,他更重要的工作是将目标仸务、用户需求通过在抽象局面的权衡、分析、理解、叏舍、排序得到如何贴切满足需求的本质。...

    架构之美中文文字版(_Reilly)

     第3章 伸缩性架构设计 51  3.1 简介 51  3.2 背景 52  3.3 架构 56  3.4 关于架构的思考 61  第4章 记忆留存 67  4.1 功能和约束 68  4.2 工作流 69  4.3 架构关注点 70  4.4 用户反应 90  ...

    《架构之美》--王海鹏,蔡黄辉

    402.3 说明什么问题 472.4 轮到你了 48参考文献 48第二部分 企业级应用架构第3章 伸缩性架构设计 513.1 简介 513.2 背景 523.3 架构 563.4 关于架构的思考 61第4章 记忆留存 674.1 功能和约束 684.2 工作...

    前端工程化 体系设计与实践 高清完整版

    本书由周爱民老师倾情作序,美团技术总监赵强、搜狐高级技术经理邵充、Facebook软件工程师邓凌飞、ofo前端架构师代学辉联袂力荐。 2.本书系统、全面地介绍了前端工程体系的各个环节,包括设计要点和实践经验。全书...

    从上百幅架构图中学大型网站建设经验

    个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,YouTube,...

    云资源下载V1.2

    Nosql (1)redis安置 (2)RedisAdminUI.zip (3)redis安装部署 (4)redis技术深层剖析及应用实践经验(sina微博) (5)Redis内存存储结构分析 (6)redis起步 (7)Redis容量及使用规划 ...盛大云平台架构设计和实现

    《iOS网络编程与云端应用最佳实践》源码

    《iOS网络编程与云端应用最佳实践》是介绍iOS 6网络编程和云端应用开发技术书籍,介绍了苹果网络、数据交换格式、WebService、iCloud、定位服务、地图、推送通知、Newsstand、应用内购买、Passbook、以及社交网络...

Global site tag (gtag.js) - Google Analytics