每当目标组不健康时,对于已在 Application Load Balancer 下转移或重新路由到该目标组的所有应用程序接口,我都会收到 502?如果一个目标组下的 ec2s 或实例不健康,是否有任何解决方案可以将其定向到另一个目标组?
1 回答
不,在目标组配置和 ALB 中没有开箱即用的解决方案。
负载均衡器使用指定的端口、协议和 ping 路径,每隔 HealthCheckIntervalSeconds 秒向每个注册的目标发送一个健康检查请求。它在响应超时期限内等待目标响应。如果运行状况检查超过连续失败响应的阈值,则负载均衡器会使目标停止服务。如果没有可用区包含健康的目标,负载均衡器节点会将请求路由到所有目标。换句话说,如果所有实例都不健康,ELB 将作为失败打开并将请求转发到该目标组中的所有实例。**
一个选项可以是 route53 运行状况检查,但这与目标组不同,而是针对 DNS 执行运行状况检查,Amazon Route 53 运行状况检查监控您的资源(例如 Web 服务器和电子邮件服务器)的运行状况。为此, Route53 有不同的选择。
当您有多个资源执行相同的功能时(例如,多个 HTTP 服务器或邮件服务器),您可以配置 Amazon Route 53 以检查资源的运行状况并仅使用运行状况良好的资源响应 DNS 查询。例如,假设您的网站 example.com 托管在六台服务器上,全球三个数据中心各两台。您可以将 Route 53 配置为检查这些服务器的运行状况,并仅使用当前运行状况良好的服务器来响应 example.com 的 DNS 查询。
您可以查看图表。
上图说明了以下事件序列:
Route 53 收到对 example.com 的查询。根据发出请求的用户的延迟,Route 53 选择 us-east-1 区域的延迟别名记录。
Route 53 根据重量选择加权记录。对于延迟别名记录,评估目标运行状况为“是”,因此 Route 53 检查所选加权记录的运行状况。
健康检查失败,因此 Route 53 根据重量选择另一个加权记录并检查其健康状况。该记录也是不健康的。
Route 53 退出该树的分支,查找具有次佳延迟的延迟别名记录,并选择 ap-southeast-2 的记录。
Route 53 再次根据权重选择记录,然后检查所选资源的运行状况。资源运行状况良好,因此 Route 53 会返回适用值以响应查询。