转自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能力。
- 用来搞定用户上传的十亿张照片的存储,其由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在数据架构上的创新实践,还提供了宝贵的经验教训,尤其是在数据开放与隐私保护、用户体验...
Facebook是全球最大的社交媒体平台之一,其背后支撑...这个压缩包中的"FaceBook架构设计.pdf"很可能详细阐述了这些概念和技术在Facebook实际应用中的具体实施和挑战。阅读这份文档将有助于理解这个庞大系统的运作方式。
网站架构设计是构建高效、可扩展且可靠的在线服务的核心,对于Facebook、Google和Amazon这样的全球知名互联网巨头来说,他们的架构设计更是业界的典范。这些公司不仅处理着海量的数据,还要保证用户能快速、稳定地...
Facebook的架构设计和优化策略对其他大型网站也提供了宝贵的经验和参考。 需要注意的是,由于文档内容是由OCR扫描得到,因此可能会存在个别的字识别错误或遗漏,但整体上的技术细节和概念依旧能够准确传达。通过...
根据提供的文件信息,我们可以了解到关于Facebook架构设计的多个关键知识点。 首先,文档中提到了Facebook的Web技术应用,包括了QuickSort算法。这暗示着Facebook在处理数据排序时可能采用了快速排序算法,这是一种...
13. **容错与故障恢复**:Facebook的架构设计考虑到故障发生的可能性,通过冗余和自动恢复机制,确保服务的连续性。 14. **内容分发网络(CDN)**:Facebook使用CDN来加速静态资源的分发,降低延迟,提高用户体验。...
Facebook作为全球最大的社交网络平台,其早期的架构设计与缓存系统对于理解大规模分布式系统的构建具有重要的参考价值。本文将深入探讨这两个主题,为IT专业人士提供相关知识点。 **Facebook早期架构设计** ...
### Facebook架构深度解析 #### 一、架构概览与核心组件 Facebook的架构设计是大流量网站架构的经典案例,尤其在扩展性和性能优化方面有着独到之处。其架构由一系列核心组件构成,包括PHP、MySQL、Memcache以及一...
### Facebook架构设计的核心理念 Facebook的架构设计核心在于其开放平台F8,它允许第三方开发者创建应用程序,这些应用可以无缝集成到Facebook的生态系统中。F8平台的关键特性包括: 1. **统一接口与API标准**:...
以下是对Facebook架构及其PHP使用的一些关键知识点的详细解析: 1. **前端架构**:Facebook的前端主要是基于JavaScript构建的,使用React框架来实现动态和高性能的用户界面。React允许高效地处理大量数据,并提供...
Facebook的网站架构设计体现了模块化、整合化和清晰化的理念,旨在实现简单、高效的系统运作。以下是对Facebook架构的深入解析: 1. **语言选择**: Facebook选择了PHP作为主要的后端开发语言,这主要是因为PHP的...
本文将深入探讨Facebook的架构设计,从不同的角度解析其技术栈。 首先,Facebook的架构可以分为两大主要部分:一是基于PHP的经典LAMP(Linux、Apache、MySQL、PHP)堆栈,二是由各种服务(Service)构成的非PHP部分...
当前大多数计算机科学的学生将Fred Brooks的这句话理解为:“给我看你的...着Web的兴起,用户产生和消费的数据比以往更加推动了信息技术的使用。Web用户不 会去接触QuickSort(快速排序)。他们会访问一个数据仓库。
网站架构设计是构建高效、可扩展且可靠的互联网服务的核心,对于大型互联网公司如Facebook、Google和Amazon来说,其背后的技术架构至关重要。这个压缩包“著名网站架构设计(包括Facebook Google Amazon 共计123篇)....
《架构风格与基于网络的软件架构设计》是Roy Thomas Fielding博士的一篇经典论文,它在IT领域,尤其是Web服务和API设计中具有深远影响。这篇论文详细阐述了Representational State Transfer (REST)架构风格,这是...
《架构之美:Facebook架构解析》是一本深入探讨大型互联网公司,特别是Facebook的系统架构与设计的书籍。作为架构师的必备读物,它揭示了如何构建可扩展、高可用、高性能的复杂网络服务。以下是对该主题的详细阐述:...
这些文档分别来自于eBay、YouTube、Facebook、淘宝、豆瓣、亚马逊和谷歌,涵盖了各大公司在不同时间点的架构设计和实践经验。这些公司都是互联网行业的巨头,它们的架构设计对整个行业有着深远的影响。以下是对这些...
总结来说,豆瓣、Facebook和淘宝的架构设计都反映了各自业务的特点和需求,包括微服务、大数据处理、高并发处理、个性化推荐等关键技术,为互联网行业的其他公司提供了宝贵的实践经验和设计思路。
这份"一线头部互联网公司技术架构设计资料合集"包含了Google、Facebook、eBay、Amazon、阿里、百度、腾讯等全球顶级互联网公司的架构设计方案,为深入理解这些公司的核心技术与策略提供了宝贵的资源。 一、Google的...