Chinaunix首页 | 论坛 | 博客
  • 博客访问: 199332
  • 博文数量: 34
  • 博客积分: 1572
  • 博客等级: 上尉
  • 技术积分: 911
  • 用 户 组: 普通用户
  • 注册时间: 2004-11-08 15:45
文章分类

全部博文(34)

文章存档

2012年(3)

2011年(31)

我的朋友

分类:

2011-12-16 16:50:52

导读:本文根据》这篇文章整理编译而来。

根据我现有的阅读和谈话,我所理解的今天Facebook的架构如下:

Web前端是由PHP写的。Facebook的HipHop [1]会把PHP转成C++并用g++编译,这样就可以为模板和Web逻贺业务层提供高的性能。

业务逻辑以Service的形式存在,其使用[2]。这些Service根据需求的不同由PHP,C++或Java实现(也可以用到了其它的一些语言……)

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

持久化由MySQL, [3],Facebook的[4],Hadoop的[5]完成。Memcached使用了MySQL的内存Cache。Facebook工程师承认他们的Cassandra使用正在减少,因为他们更喜欢HBase,因为它的更简单的一致性模型,以到其MapReduce能力。

离线处理使用Hadoop和Hive。

日志,点击,feeds数据使用[6],把其聚合并存在HDFS,其使用Scribe-HDFS [7],因而允许使用MapReduce进行扩展分析。

[8]是他们的定制技术,用来加速页面显示。

[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] 那是最近才公开的 [18]。

300TB的数据存在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的日志()[21]

参考引用

[1] HipHop for PHP

[2]

[3]

[4]

[5]

[6]

[7] Scribe-HDFS

[8]

[9]

[10] Facebook goes for Varnish

[11]

[12]

[13]

[14]

[15]

[16]

[17]

[18]

[19]

[20] Facebook’s architecture presentation at Devoxx 2010

[21]

原文出自:

译文出自:

阅读(2170) | 评论(0) | 转发(1) |
0

上一篇:开源许可证

下一篇:详细的DOS命令说明

给主人留下些什么吧!~~