因此,当使用 AWS ELB 时,我们会使用健康检查 URL 来 ping 数据库服务器/检查绑定连接等。
如果有不健康的实例,它们会被删除。但如果数据库服务器宕机,我们的网络服务器会尽最大努力继续运行。(为故障而设计)。
这两个概念似乎互相冲突?如果单个服务器不健康,它将被移除。如果所有服务器都受到影响,我们希望它们保持在线。
如何解决这一困境?
答案1
如上所述,这两个概念确实相互冲突。ELB 需要获得对健康检查的 HTTP 200 响应,否则实例将从 ELB 中删除。
如果您希望应用程序即使在数据库出现故障后仍保持在线,您需要将健康检查 URL 更改为即使数据库关闭仍能以 HTTP 200 响应的 URL。