注:现在国外正火的问答站点quora、stackoverflow上有很多关于技术方面有趣的问答,大家有空可以多去逛逛
来源: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]
分享到:
相关推荐
首先,Facebook技术架构的复杂性体现在多个方面。由于网站的流量巨大,连接到所有数据库变得不可能,代码库庞大导致多方面的资源消耗,包括内存消耗和连接数限制。此外,缓存检索是大多数页面CPU使用率的约10%。缓存...
FACEBOOK技术白皮书
facebook技术架构.zip
尽管这不是直接的SDN内容,但它是Facebook技术生态的一个组成部分,显示了Facebook如何通过开放API和工具来扩展其服务的影响范围。 总的来说,Facebook的SDN实践展示了大型互联网公司在面对复杂网络需求时如何通过...
Facebook Canopy是一个端到端性能跟踪和分析系统,它解决了三个主要挑战:支持Facebook技术栈内不同组件所使用的执行和性能模型范围;支持对性能数据进行交互式即兴分析;并通过采样、提取和可视化特征,实现深度...
总而言之,本篇面经内容丰富,不仅向我们展示了Facebook技术岗位的面试流程和题目,还透露了面试官与应聘者之间的互动细节。这些都对于准备应聘Facebook或其他类似大型科技公司的求职者来说,具有很好的参考价值。...
2007年,Facebook迎来重大转折,微软投入2.4亿美元,这不仅是对Facebook技术潜力的认可,也被视为微软对新兴社交网络市场的防御性投资。同时,亚洲富豪李嘉诚的两次投资也显示了Facebook在全球范围内的吸引力。 在...
2. Facebook技术:研究由Facebook公司相关科研团队实现。 描述所指的知识点: 1. 视频转换为游戏:通过AI算法,可将日常生活中拍摄的视频转换成可操控的游戏场景。 2. 实时算法:Facebook实现的算法能够实时对视频...
首先,我们需要从Facebook API或者通过爬虫技术获取用户的签到数据。这些数据通常包括用户ID、签到时间、签到地点(地理坐标或地点名称)等信息。在预处理阶段,我们需要清洗数据,去除异常值,处理缺失值,并将地理...
- 使用Facebook的Open Graph或App Links技术,以提高分享内容在Facebook上的呈现效果。 - 测试不同设备和Android版本的兼容性,确保分享功能在各种环境下都能正常工作。 通过以上步骤,你可以在Android应用中实现一...
Facebook已经在图像识别、语言理解和推荐系统等方面运用AI技术,云计算为这些技术提供了强大的计算能力。 总的来说,这篇“Facebook云计算英文论文”将全面剖析Facebook如何利用云计算技术来支撑其全球性的社交网络...
Facebook插件开发是一种非常有前途的技术,能够提供更多的功能和服务,提高用户体验和增加用户粘性。本文只是简单地介绍了Facebook插件开发的基本概念和流程,希望能够对您有所帮助。如果您想学习更多关于Facebook...
本文将深入讨论Web版Facebook登录的工作原理、实现方式以及涉及的关键技术。 一、OAuth 2.0授权框架 Facebook登录基于OAuth 2.0协议,这是一个开放标准,用于授权第三方应用获取用户在特定服务提供商(如Facebook)...
随着项目的推进和发展,Facebook WiFi 的覆盖范围不断扩大,最终实现了在咖啡馆等公共场所提供免费Wi-Fi服务的目标,并且这一技术也被集成到了一些思科路由器中。 Facebook WiFi 的核心理念是利用用户的Facebook...
本次培训由Tracy主讲,内容涵盖了Facebook的基础概念、专页管理、广告系统以及技术与开发者账号的相关知识。 首先,Facebook作为一个全球性的社交媒体平台,其用户基数庞大,覆盖超过150个国家和地区,拥有超过12亿...
这份“Facebook的架构”PDF文件详细介绍了这个庞然大物的技术基础。以下是对这份文档内容的概览: Facebook架构的核心设计理念是可扩展性、高可用性和性能优化。为了处理海量的数据和高并发访问,Facebook采用了...
通过这些资料,读者不仅可以学习到2008年Facebook的技术细节,还可以了解到那个时代社交媒体的发展状况,以及如何利用这些工具进行创新和营销。对于历史爱好者、开发者、产品经理或者互联网行业的研究者来说,这些都...
Facebook作为全球最大的社交媒体平台,其源码无疑是许多开发者、学习者和技术爱好者关注的焦点。深入研究Facebook源码可以帮助我们理解大型分布式系统的架构设计、前端优化策略以及后端服务的实现原理。本文将从以下...
从最初的校园社交平台,到后来的开放平台战略,再到近年来对于人工智能、虚拟现实等前沿技术的应用探索,Facebook始终走在行业前列。对于中国的SNS网站而言,单纯模仿Facebook的模式并不可取,更重要的是学习其核心...
开发Facebook应用需要熟悉Facebook的开发环境,包括OAuth认证、Graph API和JavaScript SDK等技术。 “合作共赢”是商业领域的常见理念,尤其在互联网行业中,通过合作可以实现资源共享,扩大影响力。在Facebook平台...