我们遇到的情况是,我们将在世界和我们的应用服务器池之间引入一个负载均衡器。我们域的 DNS 应该指向负载均衡器,它会在内部重定向流量。问题是 DNS 传播需要时间,我们不能有任何停机时间。
现在的情况
x.y.z.123 is the APP server
DNS www.mysite.com points to x.y.z.123
预期新情况
x.y.z.250 is the load balancer
x.y.z.123 is the APP server
DNS www.mysite.com points to x.y.z.250
哪种方法最好?我可以接受有中间步骤的解决方案。更改 APP 服务器的 IP 地址不是解决方案。
答案1
在我想要更改记录上的地址之前,我通常会将记录上的 TTL 设置为大约 5 分钟。如果现有的 TTL 是 48 小时,那么在您想要更改地址之前,请将 TTL 更改时间提前到 48 小时以上。这将使这些记录的 TTL 时间在服务器/解析器缓存中过期,然后被 5 分钟 TTL 取代。这意味着每 5 分钟而不是 48 小时重新查询一次更新的地址,并且更改的传播速度要快得多。更改后,您可以将 TTL 重新调整回原始值。
答案2
您应该将 TTL(生存时间)设置得尽可能短。具体设置方法因 DNS 提供商而异。请确保至少在现有 TTL 到期前设置,以便所有拥有旧 TTL 的人都有机会获得新 TTL。
http://www.zytrax.com/books/dns/apa/ttl.html
但最终,如果应用服务器的 IP 地址没有改变,那么如果他们在短时间内直接进入应用服务器而不是通过负载平衡,这会是世界末日吗?
答案3
难道你不能保留现有的发布规则,使其指向单个应用程序服务器,并在 xyz250 处创建一个指向负载均衡器的新发布规则吗?我已经在 Apache 负载均衡集群中成功完成了此操作。