我的第一個問題是,我經常閱讀有關使用多個專用服務器運行他們的網站並處理來自用戶的查詢的人。但他們究竟如何確切地做到這一點?我的意思是,當我輸入一個域名時,一個DNS解析映射到一個IP地址,但是我在那之後丟失了..是否有某種主/從體系結構來負載平衡(潛在地)數百個服務器?多個服務器如何與Web應用程序同步工作?
如果是這樣的話,各種服務器如何共享數據(例如數據庫)?他們會連接到相同的硬盤嗎?
回答
ultramonkey會給你如何加載平衡在多個服務器之間一個很好的說明,讓你看到1個IP地址,但連接被路由到多臺服務器中的一個(容錯包括在內)。
如果你沒有使用相同的存儲您的Web服務器(通用存儲可能會非常棘手,你必須使用一個SAN與像GFS一個「共享」文件系統或數據庫),那麼你應該啓用sticky sessions,告訴每個客戶端將選擇一臺服務器進行第一次通信的路由器,並與該服務器保持聯繫。這是較少的容錯(但在網絡中,你只需刷新一個斷開的連接重新開始),但更容易建築師(和更快,因爲每個Web服務器可以保持獨立)
另一個問題,在真正容錯的情況下,需要將物理服務器放置在彼此遠離的地方,這就給大多數共享設計帶來了性能問題(即,如果他們在不同的國家,則不能將所有服務器放在SAN上),使用多服務器方法,使用單個DNS名稱並定期在它們之間複製數據。 DNS load balancing可能是將多個Web服務器用作單個網站的最簡單方式。
在這些情況下,數據庫通常可以是所有服務器進行通信的單個數據庫,或者可以使用集羣或更經常的日誌傳送方式自行共享,以確保備用主服務器在主服務器失敗時準備就緒。備份服務器的日誌傳送比位於遠處的傳送更爲常見。
1)可以使用NLB(網絡負載平衡) - 它會在服務器場中使用相同的IP對所有服務器 http://en.wikipedia.org/wiki/Network_Load_Balancing_Services http://technet.microsoft.com/en-us/library/cc759510.aspx
2)SQL集羣爲DB和共同文件存儲非關係數據 http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx
- 1. 多線程Web應用程序與多線程Web服務器
- 2. 如何執行與服務器的android應用程序同步?
- 3. 與運行Java應用程序和Web服務器不工作
- 4. 使android應用程序與python web服務器一起工作
- 5. 跨多個應用程序服務器同步Lucene.net索引
- 6. 用於同步服務器數據的Web應用程序
- 7. 應該多久一個Android應用程序與服務器同步
- 8. 異步應用程序服務器與多個阻塞服務器
- 9. 部署多個web應用程序在同一臺服務器
- 10. 跨服務器同步web應用程序
- 11. 從Web服務器同步數據到iOS應用程序
- 12. 配置nginx web服務器與多個應用程序服務器aws堆棧
- 13. 如何使應用程序與java中的Web服務器上的應用程序同步脫機條目?
- 14. 如何在Azure上的多個實例Web應用程序中同步服務器操作?
- 15. TFS2010 - 與apache web服務器同步 - 工作文件夾
- 16. WP7 - 如何與Web服務同步?
- 17. 同步android應用程序與Web服務器數據庫的數據庫
- 18. Web服務與Web應用程序
- 19. 應用程序服務器與Web服務器
- 20. 許多應用程序服務器之間的同步
- 21. 如何在android應用程序中同步服務器數據?
- 22. c#應用程序與交換服務器同步日曆?
- 23. 恆定同步移動應用程序與服務器
- 24. 在應用程序設置中與網絡服務器同步
- 25. 與Android應用程序中的服務器同步
- 26. 當應用程序關閉時與服務器同步數據
- 27. 桌面文件如何在帶RPC調用的Gwt Web應用程序中與web服務器同步?
- 28. 在應用程序服務器之間同步服務狀態
- 29. 應用程序服務器工作
- 30. 如何使進度條與服務器代碼同步工作?