转载
http://www.yiihsia.com/2010/11/facebook%e6%8a%80%e6%9c%af%e4%bd%93%e7%b3%bb%e7%aa%a5%e6%8e%a2%e4%b9%8b%e5%9f%ba%e7%a1%80%e7%bb%84%e4%bb%b6/
Facebook,全球排名第一的SNS网站,活跃用户超到5亿,让我们来窥探一下他的技术体系
原文在这里:Facebook技术体系窥探之基础组件
和许多创业网站一样,Facebook一开始就选择了LAMP(Linux/Apache/Mysql/PHP)结构。但随着网站访问规模的不断提高,在原有的基础上做了大量持续的改进,Facebook也一直采取开放的态度,将自己的技术实践通过各种方式分享出来。即使你不是采用LAMP结构(比如我们一直以Java为主),也能受益良多。
大家都知道PHP是一种脚本语言,无需编译,但效率较低。Facebook对几种常用编程语言的效率做了一个对比
为了提高PHP的效率,Facebook做了很多优化,Op-code优化、APC缓存等。最后祭出一个大杀器:HipHop for PHP ,HipHop可以将PHP转换成优化后的C++。采用HipHop后,Web服务器的CPU占用减少了50%。Facebook已将HipHop开源
Facebook在架构上采用了SOA的思想,将独立、可复用的功能模块抽离成Service。为了高效的支持多语言调用,Facebook开发了Thrift框架,Thrift目前支持C++, PHP, Python, Java, Ruby, Erlang, Perl, Haskell等。对于异步消息的处理,Facebook则采用了同样是自己开发的日志消息系统:Scribe。Scribe采用client/server的结构,可以高效、健壮的收集各个子系统的消息日志,在中心服务器上集中处理。在服务治理方面,Facebook开发了服务管理平台以及服务监控系统。
Facebook提倡使用合适的语言做合适的事。目前Service的开发语言主要是C++,Java,Python和Erlang。
Facebook严重依赖于Memcached,大量的数据存放在Memcached中,Mysql大多数情况只作为简单的Key-Value持久化存储,这是因为Mysql的效率难以满足SNS网站数据计算的复杂性。目前Facebook有上千台Memcached服务器,存放着几十T的数据,支撑着每秒钟超过5000万次的操作请求。Facebook对Memcached的优化包括:针对64位的移植,改进序列化算法,使用UDP代替TCP,修改网卡驱动、优化网络协议栈、数据压缩等等。通过这些持续的优化,Memcached的单机吞吐能力从5万次提高到25万次
由于本人是Mysq的门外汉,就不在这班门弄斧了,感兴趣的同学可以参考一下MySQLatFacebook的Page。
后续
Facebook技术体系窥探之P级数据
Facebook技术体系窥探之社会化运算模式
分享到:
相关推荐
基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip 基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip 基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip...
Facebook基础培训
Facebook API 的 Java 封装请求处理组件 RestFB
FACEBOOK技术白皮书
react-avatar-editor - 类似Facebook的头像图片编辑器组件,使用清晰的用户界面调整和剪切上传图像。
Facebook API 的 Java 封装请求处理组件 RestFB.7z
facebook技术架构
基础技术 02. 数据传输 04. 数据处理 06. 数据治理 大数据技术体系图谱全文共96页,当前为第2页。 01 数据采集 大数据技术体系图谱全文共96页,当前为第3页。 日志采集 埋点 PC 打点 移动端打点 服务端打点 采集...
GMTC全球移动技术大会ppt 作者:覃超 主题:Facebook iOS App技术演化十年之路
基于Java的Facebook API 的Java 封装请求处理组件 RestFB.zip
基于Java的源码-Facebook API 的Java 封装请求处理组件 RestFB.zip
基于java的Facebook API 的Java 封装请求处理组件 RestFB.zip
Facebook登录的组件React 入门 yarn add react-facebook-login或npm install react-facebook-login 您的应用程序还需要安装react-dom和react 。 发展 git clone ...
React Native:Facebook SDK登录按钮 提供了一个组件,该组件包装了本地和。 Preview.gif 注意:上面的演示包括用于确认登录的调试文本(即用户名,电子邮件和访问令牌)。 默认情况下, 将仅显示本机蓝色的“使用...
基于Java的实例源码-Facebook API 的Java 封装请求处理组件 RestFB.zip
java源码:Facebook API 的 Java 封装请求处理组件 RestFB.zip
facebook基础的信息架构图
Facebook 数据中心曝光 机密信息一览无遗 一.Facebook 数据中心概括 【PConline 资讯】据来自 Google 的 Double Click 服务标准显示,Facebook 是目前世界上最受欢迎的网站,每月有超过 6900 亿的页面浏览量。...
基于Java的实例开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip
Facebook iOS App技术演化十年之路Facebook iOS App技术演化十年之路Facebook iOS App技术演化十年之路Facebook iOS App技术演化十年之路Facebook iOS App技术演化十年之路Facebook iOS App技术演化十年之路Facebook...