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

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

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

大体层次划分

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

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

lamp services

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

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

layers

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

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

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

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

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

NewsFeed的架构

写:

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

write

读:

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

read 1

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中并没说这些集群具体怎么做分布和冗余备份的。

目录
相关文章
|
6月前
|
机器学习/深度学习 人工智能 安全
「随笔」开源大模型与闭源大模型,你更看好哪一方?
开源与闭源AI模型各有利弊。开源促进创新、透明度和学习,但可能有安全风险和质量不一;闭源则保护IP、提供定制服务,但可能限制创新和透明度。混合策略,如基础开源加高级服务闭源,成为平衡点。选择取决于创新、产权、透明度和商业目标。
218 0
|
8月前
|
数据采集 人工智能 自然语言处理
谷歌DeepMind发布Gecko:专攻检索,与大7倍模型相抗衡
【4月更文挑战第12天】谷歌DeepMind的Gecko模型以小巧身形(256维)展现出媲美大型语言模型的检索性能,且在MTEB基准测试中超越768维模型。采用两步蒸馏法训练,适用于多任务及硬件环境,尤其在多语言处理上表现出色。尽管训练成本高、泛化能力待优化,但其创新为文本嵌入技术带来新可能。
134 7
谷歌DeepMind发布Gecko:专攻检索,与大7倍模型相抗衡
|
8月前
|
人工智能 自然语言处理
浙大联合微软等提出全新视频编辑统一框架UniEdit
【2月更文挑战第13天】浙大联合微软等提出全新视频编辑统一框架UniEdit
71 2
浙大联合微软等提出全新视频编辑统一框架UniEdit
|
8月前
|
存储 NoSQL 大数据
谷歌三件套 - Bigtable
谷歌三件套 - Bigtable
92 0
|
机器学习/深度学习 算法 数据挖掘
浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法(1)
浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法
210 0
|
编解码 算法 数据挖掘
浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法(2)
浙大发布「数据混合增强」框架AutoMix,还顺手开源了众多mixup算法
329 0
|
机器学习/深度学习 人工智能 分布式计算
一万亿模型要来了?谷歌大脑和DeepMind联手发布分布式训练框架Launchpad
AI模型进入大数据时代,单机早已不能满足训练模型的要求,最近Google Brain和DeepMind联手发布了一个可以分布式训练模型的框架Launchpad,堪称AI界的MapReduce。
277 0
一万亿模型要来了?谷歌大脑和DeepMind联手发布分布式训练框架Launchpad
|
机器学习/深度学习 人工智能 机器人
Reddit热议:轻量型视频理解+动作识别的开源框架Sense火热出炉
不需要姿态估计、骨架追踪,仅靠端到端深度学习,即可实现视频理解和行为识别——获得微软1000万美元融资后,初创公司Twentybn推出最新推理工具Sense,集合数据处理、模型训练等多种功能一体,帮你实现诸如手势识别,健身跟踪,健身重复计数器和卡路里计算等多种任务!
322 0
Reddit热议:轻量型视频理解+动作识别的开源框架Sense火热出炉
|
Web App开发 前端开发 JavaScript
|
Web App开发 前端开发 Windows
2010 Web前端技术趋势及总结 Facebook摘全明星MVP
相关阅读: 参加IE9开发大赛 赢取现金大奖 微软最顶级平台技术会议PDC10全程视频播放 Microsoft Web平台——优秀项目展示 Windows Phone 7 MSDN开发中心 微软Web平台优秀项目精选推荐: 世界顶级论坛、社区程序:bbsmax论坛 世界上最大的自承载博客工具:Wo...
808 0