2009-05-25 83 views
11
  1. 我的第一個問題是,我經常閱讀有關使用多個專用服務器運行他們的網站並處理來自用戶的查詢的人。但他們究竟如何確切地做到這一點?我的意思是,當我輸入一個域名時,一個DNS解析映射到一個IP地址,但是我在那之後丟失了..是否有某種主/從體系結構來負載平衡(潛在地)數百個服務器?多個服務器如何與Web應用程序同步工作?

  2. 如果是這樣的話,各種服務器如何共享數據(例如數據庫)?他們會連接到相同的硬盤嗎?

回答

5

ultramonkey會給你如何加載平衡在多個服務器之間一個很好的說明,讓你看到1個IP地址,但連接被路由到多臺服務器中的一個(容錯包括在內)。

如果你沒有使用相同的存儲您的Web服務器(通用存儲可能會非常棘手,你必須使用一個SAN與像GFS一個「共享」文件系統或數據庫),那麼你應該啓用sticky sessions,告訴每個客戶端將選擇一臺服務器進行第一次通信的路由器,並與該服務器保持聯繫。這是較少的容錯(但在網絡中,你只需刷新一個斷開的連接重新開始),但更容易建築師(和更快,因爲每個Web服務器可以保持獨立)

另一個問題,在真正容錯的情況下,需要將物理服務器放置在彼此遠離的地方,這就給大多數共享設計帶來了性能問題(即,如果他們在不同的國家,則不能將所有服務器放在SAN上),使用多服務器方法,使用單個DNS名稱並定期在它們之間複製數據。 DNS load balancing可能是將多個Web服務器用作單個網站的最簡單方式。

在這些情況下,數據庫通常可以是所有服務器進行通信的單個數據庫,或者可以使用集羣或更經常的日誌傳送方式自行共享,以確保備用主服務器在主服務器失敗時準備就緒。備份服務器的日誌傳送比位於遠處的傳送更爲常見。

相關問題