失败时交换 DNS 条目

失败时交换 DNS 条目

我正在构建一个需要高可用性的应用程序。我们目前运行:4 个 Web 服务器、2 个 Varnish 服务器(均使用 Pound 进行 SSL 代理)、3 个 Cassandra 节点。

varnish 服务器是系统的入口点。我们希望配置一切,使 Varnish A 始终正常工作,直到发生故障,然后 Varnish B 应接收请求并将其分发到 Web 服务器。

由于 Varnish A 和 Varnish B 不在同一个 DC 中,并且我们公司还有一些其他需求,因此无法使用类似 Heartbeat 的系统来使用虚拟 IP。

我们决定用我们网站的 CNAME 记录来解决这个问题。

我们现在有这样的内容:

hac.domain.com CNAME hac1.domain.com(TTL = 60 秒)

hac1.domain.com A 12.34.56.78 (TTL = 86400 秒)

hac2.domain.com A 22.33.44.55 (TTL = 86400 秒)

我们的想法是,在检测到故障时交换 hac.domain.com CNAME 记录。这给我们带来了大约 2 分钟的最大停机时间(如果没有 DNS 缓存仍然重定向到错误的服务器)。对于我们的用例来说是可以接受的。

主要问题:如何以冗余的方式检测故障并防止误报?

答案1

我开始将 Route 53 与 Amazon 的 CouldWatch 结合使用,以提供我所需的服务级别。这正是我所需要的!

答案2

您可以使用心跳检测故障并运行脚本来更改 DNS。您需要为心跳使用专用连接。

相关内容