1. 我的第一个问题是,我经常读到人们使用多个专用服务器来运行他们的网站并处理用户的查询。但他们究竟是如何做到这一点的呢?我的意思是,当我输入域名时,DNS 会将其解析为 IP 地址,但之后我就迷失了。是否有某种主/从架构可以在(可能)数百台服务器之间对传入请求进行负载平衡?

  2. 如果是这种情况,各个服务器如何共享数据(例如数据库)?它们会连接到同一个硬盘吗?

有帮助吗?

解决方案

超级猴子 将为您提供如何在多台服务器之间进行负载平衡的良好描述,因此您会看到 1 个 IP 地址,但连接会路由到多台服务器之一(包括容错功能)。

如果您的网络服务器没有使用相同的存储(公共存储可能很棘手,您必须使用 存储网络 使用“共享”文件系统,例如 政府财政司司长, ,或数据库)那么你应该启用 粘性会话 它告诉路由器每个客户端都会选择一个第一次与之通信的服务器,并保持与该服务器的联系。这容错性较低(但在网络中,您只需刷新断开的连接即可重新开始),但更容易构建(并且速度更快,因为每个网络服务器都可以保持独立)

在真正的容错情况下,您需要解决的另一个问题是使物理服务器彼此远离,这会引发大多数共享设计的性能问题(即,如果所有服务器位于 SAN 中,您就无法将它们放在 SAN 上)不同国家/地区),是使用多服务器方法,使用单个 DNS 名称并定期在它们之间复制数据。 DNS负载均衡 可能是将多个网络服务器用作单个网站的最简单方法。

在这些情况下,数据库通常可以是所有服务器都与之通信的单个数据库,或者可以自行共享,使用集群或更常见的日志传送来确保您有一个备份可以在主数据库发生故障时准备好上线。日志传送对于备份服务器来说比位于远处的服务器更常见。

其他提示

1)您可以使用NLB(网络负载平衡)-它将为场中的所有服务器使用相同的IPhttp://en.wikipedia.org/wiki/Network_Load_Balancing_Services http://technet.microsoft.com/en-us/library/cc759510.aspx

2)数据库的SQL集群和非关系数据的公共文件存储http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top