
如果我使用了不正確的術語,請原諒我。我嘗試搜尋我的問題,但我不太確定如何用足夠簡單的術語來表達它以進行搜尋。我發現這個帖子和這個帖子這些是相關的,但它們沒有回答我的確切問題。
對於需要大量伺服器來運行的網站,應用程式程式碼本身是如何儲存和管理的(暫時不考慮資料庫)?為簡單起見,假設 serverfault.com 有 10 台伺服器為其提供支援。所有 10 台伺服器上是否都有完全相同的程式碼,或者程式碼的某些部分會分佈在不同的伺服器上?如果它們都具有完全相同的程式碼,那麼管理員使用什麼工具來確保伺服器包含完全相同的程式碼?我可以想像,如果一台伺服器碰巧包含不同的程式碼,那麼就會發生不好的事情。
現在對於資料庫...如果您在基於 SQL 的儲存系統中擁有大量數據,那麼如何管理這些數據?表本身是否分佈在多個伺服器上,或者通常會是表用戶獲取此伺服器、表帖子獲取此伺服器等......?像 Facebook 或 Twitter 這樣的巨頭如何應對這個問題?
我在 AWS 微型執行個體上設定了第一台在 Ubuntu 上執行 apache 的伺服器。我可以使用任何免費工具來嘗試執行此操作嗎?我在 AWS 上找到了負載平衡器,但描述更多的是關於如何運行它們,而不是如何儲存和/或檢索資料本身。
謝謝
答案1
這就是所謂的負載平衡。負載平衡器將請求重定向到多個伺服器,這些伺服器上加載了完全相同的程式碼。
對於資料庫,這通常是透過將資料庫複製到多個伺服器,並將資料拆分到多個資料庫來完成的。 (例如,用戶 A 的「Facebook 事物」儲存在資料庫伺服器 A 上,用戶 B 會取得儲存在伺服器 B 上的數據,依此類推)
如果您想了解更多信息,以下是 Facebook 及其架構的一系列內容: https://stackoverflow.com/questions/3533948/facebook-architecture
所以對於你的場景:
- 將相同的程式碼載入到多個伺服器上
- 設定負載平衡器