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