今天我们一起来了解Facebook背后的软件,看看作为当今世界上访问量最大的网站之一,Facebook是如何保证5亿用户的系统一直稳定可靠的运行。 Facebook的扩展性挑战 在我们讨论细节之前,这里有一些Facebook已经做的软件规模: ◆Facebook有570000000000每月页面浏览量 (据Google Ad Planner) ◆Facebook的照片量比其他所有图片网站加起来还多(包括Flickr等网站) ◆每个月超过30亿张照片被上传 ◆Facebook的系统服务每秒处理120万张照片,这不包括CDN服务中处理的照片 ◆每月超过25亿条的内容 (状态更新,评论等)被共享 ◆Facebook有超过30,000服务器(这个数字是去年的) Facebook扩展所依赖的软件 Facebook是在某些程度上说仍然是LAMP的站点,但它比普通的LAMP大得多,以纳入其他元素和很多服务,并修改现行的做法。 例如: ◆Facebook仍使用PHP,但它已经为它建立一个编译器,以便它可以分为本地代码打开了Web服务器,从而提高性能。 ◆Facebook使用Linux,但他特别为网络吞吐量做了优化。 ◆Facebook使用MySQL,但主要是作为一个Key-value的持久性存储,Jions和服务器逻辑操作在Web服务器上操作。因为在那里更容易执行。 还有是自编写的系统,如Haystack,一个高度可扩展的对象存储,用来存储Facebook的照片。还有Scribe,一个日志系统,可以运行在Facebook的巨大规模上的日志系统。 现在我们介绍一下全球最大的社会网络网站的所使用的软件吧。 |