2009-05-25 85 views
11
  1. 我的第一个问题是,我经常阅读有关使用多个专用服务器运行他们的网站并处理来自用户的查询的人。但他们究竟如何确切地做到这一点?我的意思是,当我输入一个域名时,一个DNS解析映射到一个IP地址,但是我在那之后丢失了..是否有某种主/从体系结构来负载平衡(潜在地)数百个服务器?多个服务器如何与Web应用程序同步工作?

  2. 如果是这样的话,各种服务器如何共享数据(例如数据库)?他们会连接到相同的硬盘吗?

回答

5

ultramonkey会给你如何加载平衡在多个服务器之间一个很好的说明,让你看到1个IP地址,但连接被路由到多台服务器中的一个(容错包括在内)。

如果你没有使用相同的存储您的Web服务器(通用存储可能会非常棘手,你必须使用一个SAN与像GFS一个“共享”文件系统或数据库),那么你应该启用sticky sessions,告诉每个客户端将选择一台服务器进行第一次通信的路由器,并与该服务器保持联系。这是较少的容错(但在网络中,你只需刷新一个断开的连接重新开始),但更容易建筑师(和更快,因为每个Web服务器可以保持独立)

另一个问题,在真正容错的情况下,需要将物理服务器放置在彼此远离的地方,这就给大多数共享设计带来了性能问题(即,如果他们在不同的国家,则不能将所有服务器放在SAN上),使用多服务器方法,使用单个DNS名称并定期在它们之间复制数据。 DNS load balancing可能是将多个Web服务器用作单个网站的最简单方式。

在这些情况下,数据库通常可以是所有服务器进行通信的单个数据库,或者可以使用集群或更经常的日志传送方式自行共享,以确保备用主服务器在主服务器失败时准备就绪。备份服务器的日志传送比位于远处的传送更为常见。

相关问题