我正在构build一个需要高可用性的应用程序。 我们目前运行:4个Web服务器,2个清漆服务器(两个都用磅代表SSL代理),3个Cassandra节点。
清漆服务器被用作系统的入口点。 我们要configurationVarnish A始终工作的所有东西,直到失败,然后Varnish B应该收到请求并将其分发给Web服务器。
由于光油A和光油B不在我们公司的同一直stream电和其他一些要求,所以不可能使用一些类似心跳的系统来使用虚拟IP。
我们决定用我们网站的CNAMElogging来解决这个问题。
我们现在有这样的东西:
hac.domain.com CNAME hac1.domain.com(TTL = 60s)
hac1.domain.com A 12.34.56.78(TTL = 86400s)
hac2.domain.com A 22.33.44.55(TTL = 86400s)
我们的想法是在我们检测到失败时交换hac.domain.com CNAMElogging。 这给了我们大约2分钟的最大停机时间(如果没有DNScaching仍然redirect到错误的服务器)。 可以接受我们的用例。
主要问题:如何以冗余方式检测故障并防止误报?
我开始使用Route 53和Amazon的CouldWatch来提供我所需要的服务级别。 正是我需要的!
您可以使用心跳检测失败并运行脚本来更改dns。 您需要使用专用连接进行心跳。