`
wangdj
  • 浏览: 26170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

facebook 技术

阅读更多

注:现在国外正火的问答站点quorastackoverflow上有很多关于技术方面有趣的问答,大家有空可以多去逛逛

 

来源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根据需求的不同由PHPC++Java实现(也可以用到了其它的一些语言……

·         Java写的Services没有用到任何一个企业级的应用服务器,但用到了Facebook自己的定制的应用服务器。看上去好像是重新发明轮 子,但是这些Services只被暴露给Thrift使用(绝大所数是这样),Tomcat太重量级了,即使是Jetty也可能太过了点,其附加值对 Facebook所需要的没有意义。

·         持久化由MySQL, Memcached [3], Facebook  Cassandra [4], Hadoop  HBase [5] 完成。Memcached使用了MySQL的内存CacheFacebook 工程师承认他们的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的硬盘,全部有24千个CPU的核,96TB内存和36PB的硬盘。 [20]
  • 每天有1000亿的点击量,500亿张照片, 3 万亿个对象被 Cache,每天130TB的日志(20107月的数据 [21]

分享到:
评论

相关推荐

    facebook技术架构.pdf

    首先,Facebook技术架构的复杂性体现在多个方面。由于网站的流量巨大,连接到所有数据库变得不可能,代码库庞大导致多方面的资源消耗,包括内存消耗和连接数限制。此外,缓存检索是大多数页面CPU使用率的约10%。缓存...

    FACEBOOK技术白皮书

    FACEBOOK技术白皮书

    facebook技术架构.zip

    facebook技术架构.zip

    facebook sdn

    尽管这不是直接的SDN内容,但它是Facebook技术生态的一个组成部分,显示了Facebook如何通过开放API和工具来扩展其服务的影响范围。 总的来说,Facebook的SDN实践展示了大型互联网公司在面对复杂网络需求时如何通过...

    Facebook Canopy An End-to-End Performance Tracing

    Facebook Canopy是一个端到端性能跟踪和分析系统,它解决了三个主要挑战:支持Facebook技术栈内不同组件所使用的执行和性能模型范围;支持对性能数据进行交互式即兴分析;并通过采样、提取和可视化特征,实现深度...

    Facebook最新面经

    总而言之,本篇面经内容丰富,不仅向我们展示了Facebook技术岗位的面试流程和题目,还透露了面试官与应聘者之间的互动细节。这些都对于准备应聘Facebook或其他类似大型科技公司的求职者来说,具有很好的参考价值。...

    facebook 案例分析.pdf

    2007年,Facebook迎来重大转折,微软投入2.4亿美元,这不仅是对Facebook技术潜力的认可,也被视为微软对新兴社交网络市场的防御性投资。同时,亚洲富豪李嘉诚的两次投资也显示了Facebook在全球范围内的吸引力。 在...

    AI算法论文:日常视频变游戏AI算法,facebook实时算法

    2. Facebook技术:研究由Facebook公司相关科研团队实现。 描述所指的知识点: 1. 视频转换为游戏:通过AI算法,可将日常生活中拍摄的视频转换成可操控的游戏场景。 2. 实时算法:Facebook实现的算法能够实时对视频...

    预测facebook签到位置

    首先,我们需要从Facebook API或者通过爬虫技术获取用户的签到数据。这些数据通常包括用户ID、签到时间、签到地点(地理坐标或地点名称)等信息。在预处理阶段,我们需要清洗数据,去除异常值,处理缺失值,并将地理...

    facebook分享

    - 使用Facebook的Open Graph或App Links技术,以提高分享内容在Facebook上的呈现效果。 - 测试不同设备和Android版本的兼容性,确保分享功能在各种环境下都能正常工作。 通过以上步骤,你可以在Android应用中实现一...

    云计算英文论文 Facebook

    Facebook已经在图像识别、语言理解和推荐系统等方面运用AI技术,云计算为这些技术提供了强大的计算能力。 总的来说,这篇“Facebook云计算英文论文”将全面剖析Facebook如何利用云计算技术来支撑其全球性的社交网络...

    FaceBook插件开发入门教程

    Facebook插件开发是一种非常有前途的技术,能够提供更多的功能和服务,提高用户体验和增加用户粘性。本文只是简单地介绍了Facebook插件开发的基本概念和流程,希望能够对您有所帮助。如果您想学习更多关于Facebook...

    web版facebook登录

    本文将深入讨论Web版Facebook登录的工作原理、实现方式以及涉及的关键技术。 一、OAuth 2.0授权框架 Facebook登录基于OAuth 2.0协议,这是一个开放标准,用于授权第三方应用获取用户在特定服务提供商(如Facebook)...

    Facebook免费WiFi

    随着项目的推进和发展,Facebook WiFi 的覆盖范围不断扩大,最终实现了在咖啡馆等公共场所提供免费Wi-Fi服务的目标,并且这一技术也被集成到了一些思科路由器中。 Facebook WiFi 的核心理念是利用用户的Facebook...

    Facebook基础培训.pptx

    本次培训由Tracy主讲,内容涵盖了Facebook的基础概念、专页管理、广告系统以及技术与开发者账号的相关知识。 首先,Facebook作为一个全球性的社交媒体平台,其用户基数庞大,覆盖超过150个国家和地区,拥有超过12亿...

    facebook的架构(PDF)

    这份“Facebook的架构”PDF文件详细介绍了这个庞然大物的技术基础。以下是对这份文档内容的概览: Facebook架构的核心设计理念是可扩展性、高可用性和性能优化。为了处理海量的数据和高并发访问,Facebook采用了...

    Facebook登录接入Demo

    下面将详细介绍Facebook登录集成的关键步骤和技术要点。 首先,你需要在Facebook开发者平台上创建一个新的应用程序。在Facebook的开发者网站上注册,然后创建一个新应用,提供必要的应用信息,如应用名称、类别和...

    facebook2008

    通过这些资料,读者不仅可以学习到2008年Facebook的技术细节,还可以了解到那个时代社交媒体的发展状况,以及如何利用这些工具进行创新和营销。对于历史爱好者、开发者、产品经理或者互联网行业的研究者来说,这些都...

    facebook源码

    Facebook作为全球最大的社交媒体平台,其源码无疑是许多开发者、学习者和技术爱好者关注的焦点。深入研究Facebook源码可以帮助我们理解大型分布式系统的架构设计、前端优化策略以及后端服务的实现原理。本文将从以下...

    Facebook的成功秘诀是什么

    从最初的校园社交平台,到后来的开放平台战略,再到近年来对于人工智能、虚拟现实等前沿技术的应用探索,Facebook始终走在行业前列。对于中国的SNS网站而言,单纯模仿Facebook的模式并不可取,更重要的是学习其核心...

Global site tag (gtag.js) - Google Analytics