2010-03-03 59 views
6

在爲大型社交網站(包含大量交易,如Twitter)進行設計時,應該使用哪些技術?使用開源解決方案 - 數據庫 - Web服務器 - OS高性能網站

回答

10

正如你所看到的,它doesn」真的很重要你選擇什麼;所有這些網站都有很多流量,但基於非常不同的技術。

+0

的Facebook實際上使用的編譯到C++版本PHP,看看http://developers.facebook.com/news.php?story=358&blog=1 –

2

只要你會大量使用memcached,你會選擇什麼樣的腳本語言無關緊要。擁有正確的緩存層次是必須的。

+0

我認爲所有這些框架(PHP,asp.net ...)已經內置緩存支持 – Jan

+0

一些做,一些不要(PHP的) 5.2/3,但可以通過APC擴展輕鬆包含)。事情是,你真的想要一個緩存層次結構。具有多個層(至少3個,我將統計它的持久數據庫層)可讓您根據其頻繁使用情況分發數據。 – aefxx

2

在一天結束時,這是個人喜好的問題。 Twitter使用Ruby on Rails。維基百科運行在PHP上。 Reddit使用一個名爲web.py的Python庫,但最初是用Lisp編寫的。我會說挑選你最熟悉的技術。

1

由於Joel says

人們在世界各地都在不斷建設使用.NET Web應用程序,使用Java和使用PHP所有的時間。由於技術的選擇,它們都沒有失敗。

選擇您最瞭解的「大三」(.Net,Java或PHP) - 這些技術已知可擴展,您的網站是否可以擴展的真正問題是網站是結構化的,代碼的質量 - 使用您最熟悉的框架爲您提供實現這一目標的最佳機會。

0

任何適合您的口味的技術,在您的情況下,我認爲算法更重要。

6

在社交網站中最重要的是後端,因爲大部分瓶頸將來自於此。您可能想考慮No-SQL數據庫。

還有一些其他類似:

至於編程語言,如其他人所說的,它不管那麼多了。但是,如果你真的不能決定,你可能會考慮一個非阻塞的網絡服務器,如Tornado

+0

數據庫很好的信息。我總是通過關係數據庫來回答Twitter和Facebook等網站,但顯然不是 – Marius

0

技術,工藝,

  • 研究其他縮放網站都使用了什麼和做了什麼,他們遇到的問題均小於他的成功,有一次在Youtube上
  • 的iTunes,講座和訪談播客
  • 外觀在行業的最佳做法,並遵循他們的程度
  • 不要人們的話,確保你看到問題或成功,而不是對它的浮華
  • 避免明顯的事情,不垂直縮放或水平數據庫連接,會話 - cookies等
  • 將nosql存儲視爲一種可選的sql,但開銷較小但功能較少
  • 在查看語言/框架時要小心。框架帶有許多你不需要的包袱,它們最初會加速你的速度並最終減慢你的速度,比如你花費更多的時間來攻擊框架而不是建立網站,與語言相同它會做你想做的事情而不是流行,很酷編程在等
0

如果你正在建設的東西,如Facebook,那麼你的選擇是一點點有限的,Facebook的提出了自己的PHP運行時,檢查HipHop For PHP