`

Facebook技术体系窥探之基础组件(转载)

阅读更多
转载
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 基于java的开发源码-Facebook API 的Java 封装请求处理组件 RestFB.zip...

    Facebook基础培训.pptx

    本次培训由Tracy主讲,内容涵盖了Facebook的基础概念、专页管理、广告系统以及技术与开发者账号的相关知识。 首先,Facebook作为一个全球性的社交媒体平台,其用户基数庞大,覆盖超过150个国家和地区,拥有超过12亿...

    react-reactavatareditor类似Facebook的头像图片编辑器组件

    在React生态系统中,开发者可以利用各种丰富的第三方组件来加速应用的开发进程,其中之一就是`react-avatar-editor`。这个组件提供了一个类似Facebook的头像图片编辑功能,让用户可以在上传头像时进行实时的调整和...

    Facebook API 的 Java 封装请求处理组件 RestFB.7z

    在这个"Facebook API 的 Java 封装请求处理组件 RestFB.7z"压缩包中,包含了 RestFB 库的源代码和其他相关资源,使开发者能够高效地构建与 Facebook 平台集成的应用程序。 首先,让我们深入了解 RestFB 的核心功能...

    FACEBOOK技术白皮书

    FACEBOOK技术白皮书

    facebook技术架构.pdf

    Facebook作为全球最流行的社交平台之一,拥有庞大的用户基础和流量,其技术架构自然成为了业界关注的焦点。为了维持高效的分享和通信能力,Facebook构建了一个复杂的系统来应对难以想象的访问量和数据规模。2007年11...

    基于Java的实例源码-Facebook API 的Java 封装请求处理组件 RestFB.zip

    标题"基于Java的实例源码-Facebook API 的Java 封装请求处理组件 RestFB.zip"表明这是一个使用Java语言编写的库,专门用于处理Facebook API的请求。RestFB是一个流行的开源库,它为Facebook Graph API提供了一个简洁...

    Facebook登录分享发布信息程序

    Facebook登录分享发布信息程序是基于C#编程语言和Facebook SDK(FaceBook.dll)构建的应用,旨在为用户提供一种简便的方式,通过Webview组件实现用户在Windows桌面应用中的Facebook账户登录,并授权应用发布信息到...

    facebook api和facebook_jar包

    Facebook API和Facebook_JAR包是开发者用来与Facebook平台进行交互的重要工具,它们使得开发者能够创建应用程序,集成到Facebook生态系统中,实现数据交换、用户登录验证、发布内容等功能。Facebook API通常指的是...

    facebook sdn

    Wedge架构中的一个重要组件是“FBOSS”(Facebook Open Switch Software),这是Facebook开发的交换机操作系统,支持OpenFlow和其他SDN协议。FBOSS提供了对硬件资源的低级访问,使得Facebook能够根据需要调整网络...

    基于Java的源码-Facebook API 的Java 封装请求处理组件 RestFB.zip

    这个压缩包"基于Java的源码-Facebook API 的Java 封装请求处理组件 RestFB.zip"包含了一个名为"revertkn-restfb-8ea188b"的子文件夹,这很可能是RestFB的一个特定版本或分支。在本文中,我们将深入探讨RestFB的基本...

    FACEBOOK FLASH 示例 教程

    Facebook Flash 示例教程旨在帮助开发者和设计师了解如何在Flash环境中与Facebook平台进行集成,创建互动性的社交媒体应用程序或游戏。本教程将深入探讨以下关键知识点: 1. **Facebook API**:Facebook 提供了一组...

    Facebook-Android-sdk-4.8.2

    Facebook Android SDK 4.8.2 是Facebook提供的一款用于帮助Android开发者在其应用中集成Facebook功能的开发工具包。这个版本的SDK包含了实现Facebook登录、分享、邀请、广告以及分析等功能所需的库和资源。通过使用...

    C++工具库:Facebook 的 C++ 工具库 包含一系列高性能的 C++ 组件库,方便且高效在 Facebook 内部被广

    包含一系列高性能的 C++ 组件库,方便且高效在 Facebook 内部被广泛应用。该项目不仅代码规范测试用例充足,而且源码中包含丰富的注释。同样功能的函数为什么别人写的性能好还健壮,这次终于可以一探究竟了。

    facebook源代码框架

    总的来说,Facebook的源代码框架为Android开发者提供了一座知识宝库,涵盖了从基础的Android组件使用到复杂的网络通信、数据管理和用户交互设计。通过深入研究,开发者不仅可以提升个人技能,还能借鉴Facebook的最佳...

    facebook源码

    Facebook的新闻推送算法是其核心竞争力之一,源码中会涉及如何使用大数据和机器学习技术来分析用户行为,提供个性化的内容推荐。这通常涉及到如Apache Hadoop和Spark等大数据处理框架,以及TensorFlow或PyTorch等...

    facebook_lib4.17.0

    4. **App Invites**:通过SDK,开发者可以实现应用邀请功能,让现有用户能够邀请他们的Facebook朋友下载并使用应用,从而扩大应用的用户基础。 5. **Audience Network**:Facebook Audience Network是Facebook提供...

    java源码:Facebook API 的 Java 封装请求处理组件 RestFB.zip

    这个压缩包包含的是RestFB的源代码,对于想要深入了解Facebook API在Java环境中的应用以及学习如何封装HTTP请求处理组件的开发者来说,这是一个宝贵的资源。下面将详细讨论RestFB的主要特点、工作原理及其相关知识点...

    基于C#的Facebook开发包

    Facebook SDK通常包含各种组件,如OAuth认证模块、数据请求模块以及用于呈现Facebook内容的UI控件等。 对于C# Facebook开发包,其核心特性可能包括: 1. **OAuth身份验证**:SDK提供了一套简单的API,帮助开发者...

    react-facebook-login:Facebook登录的组件React

    Facebook登录的组件React 入门 yarn add react-facebook-login或npm install react-facebook-login 您的应用程序还需要安装react-dom和react 。 发展 git clone ...

Global site tag (gtag.js) - Google Analytics