欢迎来到Coolfensi推广平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!
Facebook 的系统架构
Facebook 的系统架构公告:
欢迎来到Coolfensi推广平台,平台经营Instagram、Facebook、YouTube、TIKTOK、Twitter粉丝、点赞、播放量服务、客服微信:coolfensi 24小时在线欢迎咨询购买!

Facebook 的系统架构

首页 Facebook   作者:coolfensi  2022年07月31日  热度:119  评论:0     
时间:2022-7-31 20:06   热度:119° 
Facebook 的系统架构

  根据我现有的阅读和谈话,我所理解的今天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亿张照片,100 billion hits per day,50 billion photos,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 的系统架构