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, the world's number one SNS site, over 500 million active users, let's peek his technical system
Original here: Facebook glimpse of the basic components of technology systems
And many business Web sites, Facebook started on the choice of the LAMP (Linux / Apache / Mysql / PHP) architecture. But with the increasing size of site visits, based on the original lot in the continuous improvement, Facebook also has an open mind, to practice their skills through a variety of ways to share it. Even if you are not using LAMP architecture (such as we have a Java-based), but also gained a lot.
We all know that PHP is a scripting language, no compilation, but less efficient. Facebook on the efficiency of several common programming languages to do a comparison
In order to improve the efficiency of PHP, Facebook has done a lot of optimization, Op-code optimization, APC caching. Finally, wielding a big killing device: HipHop for PHP, HipHop PHP can be converted into optimized C + +. After using HipHop, Web server CPU utilization reduced by 50%. Facebook has HipHop Open Source
Facebook in the framework of thinking on the use of SOA, will be independent, reusable modules pulled into the Service. In order to efficiently support multi-language calls, Facebook has developed a framework Thrift, Thrift currently supports C + +, PHP, Python, Java, Ruby, Erlang, Perl, Haskell, etc. For asynchronous message processing, Facebook is using the same log message is self-developed systems: Scribe. Scribe uses a client / server architecture, can be efficient and robust collection of various subsystems of the message log, to focus on a central server. Governance in the service, Facebook has developed a service management platform and service monitoring system.
Facebook promote the use of appropriate language to do the right thing. Service is currently the main development language is C + +, Java, Python and Erlang.
Facebook is heavily dependent on Memcached, large amounts of data stored in Memcached in, Mysql in most cases only as a simple Key-Value persistent storage, it is difficult to meet because of the efficiency of Mysql SNS website calculate the complexity of the data. Currently Facebook has thousands of Memcached servers, the storage of tens of T's data, supporting over 50 million times per second operation request. Facebook on the Memcached optimization include: transplant for 64-bit, improved serialization algorithm, using UDP instead of TCP, modify the network card drivers, optimize network protocol stack, data compression, and so on. Through these continuous optimization, Memcached stand-alone throughput capacity from 50,000 to 250,000
I am the Mysq layman, not in this trespass, interested students can refer to MySQLatFacebook of Page.
Facebook snooping technology system the P-level data
Facebook snooping technology system model of social computing