我的第一個問題是,我經常閱讀有關使用多個專用服務器運行他們的網站並處理來自用戶的查詢的人。但他們究竟如何確切地做到這一點?我的意思是,當我輸入一個域名時,一個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. 與運行Java應用程序和Web服務器不工作
- 2. 跨多個應用程序服務器同步Lucene.net索引
- 3. 部署多個web應用程序在同一臺服務器
- 4. 從Web服務器同步數據到iOS應用程序
- 5. 如何使應用程序與java中的Web服務器上的應用程序同步脫機條目?
- 6. TFS2010 - 與apache web服務器同步 - 工作文件夾
- 7. WP7 - 如何與Web服務同步?
- 8. 同步android應用程序與Web服務器數據庫的數據庫
- 9. 應用程序服務器與Web服務器
- 10. Web服務與Web應用程序
- 11. 當應用程序關閉時與服務器同步數據
- 12. 與Android應用程序中的服務器同步
- 13. c#應用程序與交換服務器同步日曆?
- 14. 在應用程序設置中與網絡服務器同步
- 15. 如何在android應用程序中同步服務器數據?
- 16. 桌面文件如何在帶RPC調用的Gwt Web應用程序中與web服務器同步?
- 17. 應用程序服務器工作
- 18. 如何使Angular.js應用程序在可用時與服務器同步脫機
- 19. 從Silverlight 3應用程序同步調用Web服務?
- 20. 如何開發多服務器Web應用程序?
- 21. 如何使Office Web應用程序服務器能夠與鈷
- 22. Win-app調用web服務與調用相同服務的web應用程序
- 23. 跨2個應用程序服務器同步Lucene索引
- 24. 如何從ASP.NET應用程序異步調用Web服務?
- 25. 如何將我的backbone.js應用程序與服務器上的更改同步?
- 26. android應用程序如何與後端服務器同步數據?
- 27. 異步與同步Web服務實踐?
- 28. 在Silverlight應用程序中同步Exchange Web服務時出錯
- 29. 如何從asp.net web應用程序啓動多個windows服務?
- 30. 如何在同一臺服務器上多次部署asp.net web應用程序?