图文解读Facebook 从设计原则到架构体系

2016-02-19 17:36 6 1 收藏

下面是个简单易学的图文解读Facebook 从设计原则到架构体系教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - Web开发 】

  设计原则

  1尽可能的使用开源软件,并且在需要优化的时候进行优化

  2Unix 哲学。包括,模块化原则;整合化原则;清晰化原则等

  3任何组件具备扩展性

  4最小化故障影响

  5简化,简化,简化!

  架构概览

  Facebook 是 LAMP 的坚定支持者,也差不多是用 LAMP (或许用 LAM2P 更适合) 实现的最大的动态站点。

  图片看不清楚?请点击这里查看原图(大图)。

  基础组件加上服务,中间用自己实现的一些工具进行粘合。其中关于运维细节的事情基本不会说出来的,这是很多公司的软实力所在。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  PHP 经验

  参见《Facebook 的 PHP 性能与扩展性》

  MySQL 经验

  1主要用于做 Key-Value 类型的存储操作,数据随机分布在多台逻辑实例上,访问多数基于全局 ID 。

  2逻辑实例分散在多台物理主机上(超过1800台),负载均衡在物理层进行。

  3不做读复制。

  4尽量不做逻辑数据迁移(成本太高)。

  5不做 JOIN 操作 (豆瓣在 QCon 上也阐述了这一点)。数据是随机分布的,关联操作反而带来了极大的复杂度。

  6对于数据访问,主要的操作集中在最新的数据上,针对这部分做优化,旧的数据进行归档。

  7在中心 DB 绝不存储非静态数据。

  8使用服务或者 Memcached 进行全局查询。

  Memcached 经验

  参见我以前的笔记:Facebook 的 Memcached 扩展经验。Facebook 对 Memcached 做了不小的改进。另外,顺便说一下,前两天 Memcached 刚在 1.2.7 发布几天之后又发布了新版本 1.2.8,修正了一些问题。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  一个比较有价值的是关于个人页面数据的获取的描述。这个就完全是需要做单页面 Benchmark 的细致活儿了,可能还需要产品经理能够理解工程师的抵抗。

  1获取个人信息数据:通过Cache,隐性通过用户所在的 DB 获取(基于 User-ID 获知 DB)

  2获取朋友连接信息:通过Cache,否则的话通过DB(基于 User-ID 获知 DB)

  3并行抓取每个朋友的 10个照片相册 ID ,从Cache抓取,如果失效,再从 DB 抓取(基于相册 ID)

  4并行抓取最近相册中的照片数据

  5运行PHP 把整个业务逻辑跑出来

  6返回数据给用户

  然后是对 Facebook 非 LAMP 体系的东西做了一番介绍,基本上也开源了。最后参考两个架构图。

  Facebook NewsFeed 的架构示意图

  图片看不清楚?请点击这里查看原图(大图)。

  Facebook 搜索功能的架构示意图

  图片看不清楚?请点击这里查看原图(大图)。

  管中窥豹,盲人摸象而已。

来源:http://www.tulaoshi.com/n/20160219/1615615.html

延伸阅读
我们在ktv的时候常常会看到一些称之为“包房公主”的女性,她们穿着开放,行为。。额,行为也很大方,但是呢,或许很多人对他们抱有很大的偏见,带着有色的眼睛去看待这样的一份职业,事实上,每一份工作都会有其不为人知的心酸,下面就由图老师小编带大家进入到ktv女郎的内心世界! KTV公主的那些心酸经历   K...
天完成了Jujube项目的架构设计,今天在用Delphi将这个狂架实现, 自认为设计的还不错 ,有些沾沾自喜了啦 !! 看来我要挨批了,在适当的时间我会将他公布,让大家讨论! 作者Blog: http://blog.csdn.net/zhuam/ 相关文章 A simple class for converting any Java object to XML string 昨天看了IBATIS得应用事例JPETST...
标签: Web开发
大部分时候我们讲导航,讲的是导航对内容和结构的一种表现。就是说我们在讨论导航的时候,更多的去关注怎么与之交互,以及视觉上是怎么好看。但是导航,不仅仅局限于交互方式和视觉形式。 被狭义化的导航 回想一下我们是如何设计导航的?难道不正是根据内容、根据内容的结构去设计?最终,导航可能包含了三方面的功劳:交互设计、视觉设计,别...
许多大学生在写毕业论文的时候往往会遇到这样一个问题,论文的第一页为标题简介,第二页目录,第三页才正式开始,所以前两页更本不需要页码,我们只需要将Word页码从第三页开始显示,但是Word中的页眉总是非常难搞定,每次设置其中一个页眉,整个就会发生变化。针对此问题,office教程学习网早就作好了完美的的设置方法,下面我们就以图文...

经验教程

956

收藏

41

精华推荐

从A到L的love

从A到L的love

谂耐磨擞

JAVA从入门到精通

JAVA从入门到精通

讲不听不听

从网页到网络平台

从网页到网络平台

星际种子族

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部