在 XYZ.com 关闭之前,我注意到我的请求被路由到 IP 地址 192.33.31.xxx ,当它出现时,我注意到我的请求被路由到 IP 50.17.196.xxx ,这是某种服务器切换吗?发生故障时动态服务器切换不是制造容错系统的一种方法吗?
问问题
258 次
1 回答
1
大多数重度使用的网站都使用负载均衡器,将请求定向到多个服务器。有非常简单到非常复杂的逻辑,路由是根据这些逻辑定义的。例如,逻辑可以是
- 一旦请求由一台特定服务器处理,来自同一 IP 的请求将由同一台服务器处理或
- 使用轮询方式处理请求(在这种情况下,IP 可以发挥作用)
- 将请求路由到最少使用的服务器等。
网站也可以使用上述所有方法的混合方法。
现在,如果您访问的网站使用的是基于 IP 的路由,那么情况将是
- 这是您的第一个要求。然后,您将被分配一个服务器来处理您的请求。(这可以是循环或其他逻辑(例如负载较少的服务器)
- 现在负载均衡器可能具有以下逻辑:下一个 X(例如 100 个)请求或 Y(例如 1 小时)时间段,来自同一 IP 的所有请求将被路由到同一服务器或两者
- 因此,在您的情况下,如果您向 XYZ 发出请求,它会路由到某个 abcd 服务器,然后如果您在 1 小时后再次拨打电话或拨打第 101 次电话,您可能会得到另一台服务器来处理您的请求。
现在,如果您的服务器出现故障,那么您可以使用回退机制,例如,
- 如果服务器在某个预先配置的时间段内没有响应,请从负载均衡器配置中的实时服务器列表中删除该服务器并重新路由请求。
- 或者我们可以让一个闲置的预运行服务器(这很昂贵,但是当每个请求都必须无故障地提供服务时才需要遵循)。一旦服务器宕机,调用这个新服务器并将分配给宕机的旧服务器的 ip 分配给它。
不过,这个问题可以有更好和更复杂的解决方案。
于 2014-03-03T14:40:07.707 回答