我的第一个问题是,我经常阅读有关使用多个专用服务器运行他们的网站并处理来自用户的查询的人。但他们究竟如何确切地做到这一点?我的意思是,当我输入一个域名时,一个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应用程序?