浅谈Facebook的服务器架构(组图)

导读:毫无疑问,作为全球最领先的社交网络,Facebook的高性能集群系统承担了海量数据的处理,它的服务器架构一直为业界众人所关注。CSDN博主yanghehong在他自己最新的一篇博客《 Facebook的服务器架构》中分享了他的看法。

大体层次划分

Facebook的架构可以从不同角度来换分层次。

一种是:一边是PHP整的经典的LAMP stack;另外一个是非PHP整的各种service。

Facebook的页面从刚创立的时候扎克伯格写的,到现在,都用PHP开发。后端有用各种语言开发的service。它们之间用跨语言的thrift RPC通信(Scribe也是建立在Thrift之上)。

另外一个角度划分的层次是:

前面是负载局衡器(没说是用硬件的还是软件的);负责分配 前端的Web服务器, Web服务器是用PHP来聚合数据;最后面是 Services,Memcached和数据库。

有意思的是对后面三种的定性:

Services – 快速,复杂; 自己开发的业务进程,来实现复杂的业务逻辑,速度快。

Memchached – 快速,简单;Memchached做简单的key-value缓存,服务应用快速的读请求。

数据库 – 缓慢,持久。数据库做持久存储,磁盘IO自然慢,不过有memcached做缓存没关系。

NewsFeed的架构

写:

Bob更新状态,Web服务器上的PHP程序除了将内容到MySQL数据库之外,也将该行为动态的ID通过Scribe发到一个Leaf Server上(根据Bob的用户ID选的Leaf Server)。

读:

另一个人Alice打开Facebook,加载主页,PHP程序向Aggregator服务器查询(Thrift调用),Aggregator从若干个Leaf Server里头读出Alice的朋友的所有行为动态/action的前四十个,aggregator做聚合和一定的排序,返回给PHP程序。

PHP程序获得这些行为动态的ID之后,从Memcached中读出这些ID对应的内容,如Memcached没有则从MySQL数据库中读,汇聚后生成HTML返回给浏览器。

Chat的架构

页面请求,仍WEB服务器处理(PHP)处理,当然也依赖web tier之后的各种Service。比如查看消息历史啊,在线用户列表啊,发送聊天消息啊。

接收聊天消息,则没通过PHP服务器,而是专用的用Erlang写的Channel服务器来处理,通过long-polling来接收聊天消息。Channel服务器是Chat服务的核心部件。发送的消息通过web tier发到Channel服务器。

后方有用C++写的chatlogger服务器来做历史记录的读写。

同样也用C++写了presence服务器来从channel服务器汇集在线状态。

系统的简化结构如下图所示:

Web tier, chatlogger, presence, channel 都是多个服务器组成的集群。

Channel服务器有根据User ID做分区,每个分区由一个高可用的Channel集群服务。

Web tier, chatlogger, presence,在公开的文章和PPT中并没说这些集群具体怎么做分布和冗余备份的。

时间: 2024-11-05 22:00:14

浅谈Facebook的服务器架构(组图)的相关文章

浅谈大数据处理技术架构的演进

浅谈大数据处理技术架构的演进 任桂禾 王晶 新兴应用对大数据处理技术架构的实时性要求不断提高,这对传统的大数据处理技术架构提出严峻的挑战.必须转变架构满足大数据相关业务的实时性要求.文章介绍Hadoop离线处理架构的瓶颈以及Storm实时处理架构的优点,同时,结合实际项目中变更大数据处理技术架构的经验,阐述在实施架构变更过程中的关键技术,实验结果证明使用变更后的技术架构可以满足业务的实时性要求. 浅谈大数据处理技术架构的演进

浅谈Android官方MVP架构解读_Android

综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

浅谈Facebook游戏的运营经验

这个时候,也许在地球的某个角落,某个玩家正在通过Facebook玩一款中国开发的游戏,Facebook作为拥有全球10亿用户的社交网站,正在不停地给国内游戏开发商带来收入. 尽管是社交网络巨头,因为国内游戏开发商对网站并不熟悉,特别是中小型的,想要自己在Facebook上推广游戏的开发商来说,会遇到各种各样的问题. 作为在Facebook上的第一大游戏发行商6waves,其中国区总经理唐臣,最近在成都给出了一些建议.6waves在Facebook上拥有1400万的月活跃用户和200万的日活跃用户

浅谈“粗心”搬迁服务器的后果

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在开展个人的"长篇大论"之前,小编是非常不愿意写这篇文章的,因为小编所负责优化的网站目前正遇到了因"粗心"搬迁服务器的种种后遗症,再简单一点说明,那就是受到了惩罚.虽然到了这地步,但小编仍然觉得有必要分享一下目前的现象的心得,为准备搬迁服务器或正在搬迁服务器的站长提供一个典型参考; 搬迁服务器也会导致受

浅谈Facebook不敌Drudge的原因

中介交易 SEO诊断 淘宝客 云主机 技术大厅 据Facebook首席执行官马克·扎克伯格可能是<时代>杂志评选的风云人物,但是当涉及到对网上新闻发布的影响力时,他仍然无法与马特·德拉吉(Matt Drudge)相提并论. Facebook的用户已经接近7亿,但据皮尤研究中心(Pew Research)的最新调查显示,<德拉吉报道>(Drudge Report)给全美各大新闻网站带去的流量却是Facebook的两倍多.该报告显示: 1 在所有被引入新闻站点的流量中,<德拉吉报

浅谈Asp.net多层架构中的变量引用与传递

asp.net|变量|架构 到公司已经快两个星期了,但是由于客户的需求分析没有下来,所有项目迟迟没有开始.正好利用这个时间仔细研究了一下Asp.net的多层架构,主要参考的是 Wrox 的一本<.Net WebSite Programming Problem-Design-Solution>,个人觉得这本书写的不错.面向有一定.net基础的开发人员,刚开始看起来可能觉得很难懂,但是仔细研究一下会发现,这本书是一本面向工程应用的优秀参考手册. Asp.net的多层架构主要是为了解决数据层,逻辑层

探访Facebook新总部大楼(组图)

边健身边工作办公室员工工位显示屏室内随意玩耍宽松的办公环境新浪科技讯 北京时间12月22日上午消息,Facebook全部员工已于上周五迁入位于加州门罗帕克的新总部,并将新地址命名为1 Hacker Way(黑客路).新浪科技驻美国记者获准探访了Facebook总部大楼.东西两个园区Facebook新总部包括10座建筑,占 地面积57英亩(约合23.1万平方米),建筑面积100万平方英尺(约合9.3万平方米).原本是Sun(又名太阳微电子公司)的总部, 2009年甲骨文宣布斥资74亿美元收购Sun

浅谈网站更换服务器IP会不会对关键词排名造成影响

今天在邮箱上看到一位朋友问 网站更换服务器IP会不会对关键词排名造成影响? 其实网站更换ip是正常的(频繁更换除外),现在的搜索引擎抓取是按照域名去抓取的,而不是去抓取某个IP上的网站.所以短时间内更换IP对网站并没有太大的影响. 所谓频繁更换IP带来的影响,主要体现在网站停摆,蜘蛛抓不到东西,误认为死链接引起的. 所以说,当你的网站频繁更换程序,导致原来收录,或者抓走的内容长时间导致无法访问,这些都会对你的网站造成严重的损失. 在此地瓜希望广大朋友,不要频繁更换网站内容,不要频繁宕机,网站不要

Facebook测试手机支付服务(组图)

北京时间8月27日早间消息,据国外媒体报道,Facebook发言人证实,该公司正在与手机支付创业公司Zong合作,进行允许部分用户通过手机购买其虚拟货币Facebook Credits的试验. 该发言人表示,"我们正在与少数开发者合作进行小规模试验,希望能方便用户购买我们的虚拟货币.作为这次试验的一部分,我们在与Zong合作,探索用户能通过输入他们的手机号而非信用卡信息方便地购买虚拟货币的方法.少数用户在Gift Shop购物也可以使用手机支付方式." 此前有消息称,许多Faceboo