那麼Facebook已經經歷了許多變化,它最初的設計並非高效。它的目的是做它的工作。我完全不知道代碼是什麼樣的,你可能不會找到關於它的很多信息(出於明顯的安全和版權原因),但只是看看API。看看它變化的頻率,以及它有多少無法正常工作,或者根本無法正常工作。
我認爲他們袖子裏最大的ace就是Hiphop。 http://developers.facebook.com/blog/post/358 您可以使用自己的HipHop: http://wiki.github.com/facebook/hiphop-php
但如果你問我,這是一個非常宏大的,可能浪費時間的任務。 Hiphop只支持這麼多,它不能簡單地將所有內容都轉換爲C++。那麼這告訴我們什麼?那麼,它告訴我們Facebook沒有充分利用PHP語言。它沒有使用最新的5.3版本,我敢打賭,仍然有很多PHP 4兼容。否則,他們不能使用HipHop。 HipHop是一個好的IDEA,需要發展壯大,但在目前的狀態下,對於那些構建新的PHP應用程序的人來說,它並不是真的有用。
也有PHP到JAVA,像Resin/Quercus。再次,它不支持所有的東西...
另一件需要注意的是,如果您使用任何非標準的PHP模塊,您將無法將該代碼轉換爲C++或Java。但是...讓我們來看看PHP模塊。它們是用C++編譯的。所以如果你可以構建PHP模塊來完成某些事情(比如解析XML等),那麼你基本上(減去一些交互)以相同的速度工作。當然,你不能僅僅爲每一個可能的需求和你的整個應用程序創建一個PHP模塊,因爲你將不得不重新編譯,而且編碼會更困難等等。
但是......有一些方便的PHP可以幫助解決速度問題的模塊。 儘管在這一天結束時,我們有這種稱爲「雲」的令人敬畏的東西,並且通過它,我們可以擴展我們的應用程序(包括PHP),因此它不再那麼重要。硬件越來越便宜。亞馬遜剛剛降低了它的價格(再次)說到。
所以只要你的代碼的PHP應用程序的理念是它需要有一天...規模那麼我覺得你很好,我真的不知道我甚至想看看Facebook和什麼他們這樣做是因爲當他們這樣做時,這是一個完全不同的世界,現在試圖維持基礎設施並維護它......呃,你得到了像HipHop這樣的東西。
現在怎麼街舞會幫助你?它不會。它不能。你剛剛開始,你可以使用PHP 5.3。我強烈建議您查看PHP 5.3框架以及PHP 5.3與SPL庫一起帶來的所有新優勢,並且還會考慮您的數據庫。您很可能是從數據庫提供內容,因此請檢查MongoDB和其他類型的無模式和麪向文檔的數據庫。對於最常見的網站/應用程序,它們要快得多,速度更快。
看像Foursquare和SmugMug的,並且正在利用新技術以及它們是如何使用它的一些其他公司的新公司。就像Facebook一樣成功,我實在不會看他們如何構建一個高效的網站/應用程序。我不是說他們沒有非常有才華的人在那裏工作,創造性地解決(他們)的問題......我也不是說Facebook並不是一個好主意,而且也不是成功,並且你不應該從它那裏得到想法......我只是說,如果你可以查看他們的整個源代碼,你可能不會從中受益。
來源
2010-11-03 16:56:34
Tom
2.規模Facebook的(視頻) - HTTP:// WWW .infoq.com/presentations/Scale-at-Facebook 3. Facebook Chat - ht tp://www.infoq.com/news/2008/05/facebookchatarchcture – 2010-08-20 18:52:52
另外http://highscalability.com/似乎是瞭解許多熱門網站體系結構的好地方。不知道有多少這是真的和多少投機,但它是在那裏&只是東西啃... – 2010-08-20 18:54:27
[臉書工程博客](http://www.facebook.com/notes.php?id= 9445547199)偶爾會對其架構和擴展挑戰有深入的瞭解。 – 2010-11-03 15:50:14