`

facebook的技术相关架构

阅读更多

人才 学疏浅,提出这个问题只是为了抛砖引玉,希望大家能在自己擅长的领域里对Facebook中可能采用的某个技术 或者架构方案或优化方法 ,做个自己的论述。根据2008年9月1日,腾讯网对Facebook的技术运营副总裁Jonathan Heiliger的访问 ,我们了解到:
(1)Facebook自称全球流量第四的网站 ,每天9000万活跃用户访问Facebook的1万台服务器
(2)25TB数据 (08年12月为28TB),40万名外部开发 者支持,开发了2.5万套应用 软件
(3)使用LAMP Linux 、 Apache  MySQL 、  PHP )技术构架;数据库 使用MySQL ;使用Memcached缓存SQL加速(全球最大的分布式Memcached缓存,800多台服务器,光缓存在Memcached中数据就达20多TB);使用APC进行opcode编译缓存。关于PHP的编译执行如下图所示:
机制.jpg

而Facebook的缓存方案如下图所示:
facebook机制.jpg


(4)一些后台应用是用Python、Perl和Java ,以及一些gcc和Boost。 (5)使用SVN和Git来进行代码 管理,并且全部企业内部的软件部署都采用开源 程序


2. 可能会采用的MySQL架构与优化
(1)数据的垂直(无关联数据放置不同数据库服务器)与水平分割(库表散列,如用user_id散列),然后用MySQL Proxy/Spock Proxy进行分割表的反向代理。
(2)合理使用变量,并在本地文件 建立散列的映射关系,进一步进行分割。
(3)Master/Slave集群架构,实现读写分离。
(4)合理的数据库结构设计,与索引优化

(5)其他:索引缓存、联合索引、查询 缓存等。


3. 可能会采用的系统 优化
(1)使用epoll模型
(2)异步I/O
(3)fastcgi或其他方法实现多进程
(4)sendfile系统调用增大网络 I/O流量
4. 可能会采用的Web 架构或前端技术
(1)Web组件分离,如独立的图片服务器,JavaScript、CSS 文件、动态脚本的分离。
(2)Nginx反向代理(或Squid)
(3)多副本负载均衡
(4)HTTP持久连接与合理利用浏览器缓存,例如背景图偏移量技术,及对CSS、JavaScript和视频
5. 一些可能会用也可能不用的压力测试
(1)Apache的ab进行压力测试
(2)Apache的prefork模式进行多进程切换的压力测试
(3)使用Nginx为多进程下的CPU与IO进行监控

Linux下的Memcached开发,请参看逆雪寒的文章 http://bbs.phpchina .com/viewthread.php?tid=48667&highlight=linux %2B%CF%C2%B5%C4%2Bmemcached%2B%BF%AA%B7%A2
Memcached的分布式缓存机制及相关解决 方案请阅读以下网址及相关文章:
http://tech.idv2.com/2008/07/24/memcached-004/

分享到:
评论

相关推荐

    facebook技术架构.pdf

    首先,Facebook技术架构的复杂性体现在多个方面。由于网站的流量巨大,连接到所有数据库变得不可能,代码库庞大导致多方面的资源消耗,包括内存消耗和连接数限制。此外,缓存检索是大多数页面CPU使用率的约10%。缓存...

    facebook的架构(PDF)

    这份“Facebook的架构”PDF文件详细介绍了这个庞然大物的技术基础。以下是对这份文档内容的概览: Facebook架构的核心设计理念是可扩展性、高可用性和性能优化。为了处理海量的数据和高并发访问,Facebook采用了...

    facebook技术架构.zip

    facebook技术架构.zip

    FACEBOOK服务架构

    本文将深入探讨Facebook的架构设计,从不同的角度解析其技术栈。 首先,Facebook的架构可以分为两大主要部分:一是基于PHP的经典LAMP(Linux、Apache、MySQL、PHP)堆栈,二是由各种服务(Service)构成的非PHP部分...

    Facebook 网站架构总结

    Facebook作为一个全球知名的社交网络平台,其背后的技术架构是支撑亿级用户流畅互动的关键。Facebook的网站架构设计体现了模块化、整合化和清晰化的理念,旨在实现简单、高效的系统运作。以下是对Facebook架构的深入...

    著名网站架构设计(包括Facebook Google Amazon

    网站架构设计是构建高效、可扩展且可靠的在线服务的核心,对于Facebook、Google和Amazon这样的全球知名互联网巨头来说,他们的架构设计更是业界的典范。这些公司不仅处理着海量的数据,还要保证用户能快速、稳定地...

    架构之美(face book架构)

    《架构之美:Facebook架构解析》是一本深入探讨...《架构之美》不仅剖析了Facebook的技术细节,也为我们提供了设计大规模分布式系统的方法论和实践经验,对于任何希望成为优秀架构师的人来说,都是不可多得的学习资源。

    facebook 架构 php

    Facebook是全球最大的社交媒体平台之一,其背后的技术架构是支撑亿级用户流畅互动的关键。Facebook的架构设计涉及到多个层面,包括前端、后端、数据库、分布式系统、缓存策略以及编程语言PHP的应用。以下是对...

    facebook 架构

    通过定制化改进开源技术、引入自研服务和工具,以及遵循简洁高效的设计原则,Facebook成功构建了一个能够应对海量用户和数据挑战的架构体系。这不仅是技术上的创新,也是对互联网服务本质的深入思考。

    FaceBook架构设计.pdf

    在技术架构方面,文档中提到了Facebook的后端技术栈,包括了API、FQL以及FBML。这些是Facebook早期的技术标准: - API(Application Programming Interface)即应用程序编程接口,是Facebook提供给开发者使用的编程...

    Facebook早期架构设计以及缓存系统

    Facebook作为全球最大的社交网络平台,其早期的架构设计与缓存系统对于理解大规模分布式系统的构建具有重要的参考价值。本文将深入探讨这两个主题,为IT专业人士提供相关知识点。 **Facebook早期架构设计** ...

    Facebook的服务器架构(组图).doc

    首先,从技术栈的角度看,Facebook的架构可以分为LAMP(Linux、Apache、MySQL、PHP)栈和各种服务。PHP作为Facebook的主要开发语言,用于构建前端网页和处理用户的交互。同时,Facebook还使用了多种其他语言(如C++...

    ebay,youku,facebook等架构文档

    这些文档分别来自于eBay、YouTube、Facebook、淘宝、豆瓣、亚马逊和谷歌,涵盖了各大公司在不同时间点的架构设计和实践经验。这些公司都是互联网行业的巨头,它们的架构设计对整个行业有着深远的影响。以下是对这些...

    FaceBook架构设计.zip

    Facebook是全球最大的社交媒体平台之一,其背后支撑...这个压缩包中的"FaceBook架构设计.pdf"很可能详细阐述了这些概念和技术在Facebook实际应用中的具体实施和挑战。阅读这份文档将有助于理解这个庞大系统的运作方式。

    [高清]大型网站技术架构 核心原理与案例分析+李智慧.pdf

    《大型网站技术架构:核心原理与案例分析》是李智慧所著的一本关于构建和优化大规模网站架构的重要著作。这本书深入浅出地介绍了大型网站在应对高并发、大数据量、高可用性等挑战时所采用的技术策略和实践经验,是IT...

    各大公司架构,豆瓣网,facebook,淘宝

    总结来说,豆瓣、Facebook和淘宝的架构设计都反映了各自业务的特点和需求,包括微服务、大数据处理、高并发处理、个性化推荐等关键技术,为互联网行业的其他公司提供了宝贵的实践经验和设计思路。

    理解_Facebook_应用程序的架构

    Facebook应用程序的架构主要涉及到将Flash Platform的技术与Facebook的社交功能结合,从而创建具有高度互动性和社交体验的应用。这种架构允许开发者构建多种类型的应用,包括在Facebook上的应用、外部网站应用和桌面...

    著名网站架构设计(包括Facebook Google Amazon 共计123篇).rar

    网站架构设计是构建高效、可扩展且可靠的互联网服务的核心,对于大型互联网公司如Facebook、Google和Amazon来说,其背后的技术架构至关重要。这个压缩包“著名网站架构设计(包括Facebook Google Amazon 共计123篇)....

Global site tag (gtag.js) - Google Analytics