本人才学疏浅,提出这个问题只是为了抛砖引玉,希望大家能在自己擅长的领域里对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的编译执行如下图所示:
而Facebook的缓存方案如下图所示:
2. 可能会采用的MySQL架构与优化
(1)数据的垂直(无关联数据放置不同数据库服务器)与水平分割(库表散列,如用user_id散列),然后用MySQL Proxy/Spock Proxy进行分割表的反向代理。
(2)合理使用变量,并在本地文件建立散列的映射关系,进一步进行分割。
(3)Master/Slave集群架构,实现读写分离。
(4)合理的数据库结构设计,与索引优化
立即学习“PHP免费学习笔记(深入)”;
(5)其他:索引缓存、联合索引、查询缓存等。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号