全部,
我们最近遇到了ELB HealthCheck在掩盖导致应用程序影响的特定用例或场景方面的问题。
有人建议使用容错方法来处理这个问题吗?
答案 0 :(得分:2)
您可以将Elastic Load Balancing配置为指向客户运行状况检查页面(例如index.htm
),而不仅仅检查200
页面是否返回healthcheck.php
响应。
您可以在该页面上运行一些代码来测试应用程序的一般运行状况(数据库连接,磁盘空间,可用内存)。如果一切都结束,请返回200
响应。如果出现问题,请返回500
响应。这将导致Load Balancer将实例视为Unhealthy
,并且它将停止为实例提供流量。
如果Auto Scaling配置为使用 ELB运行状况检查,则Auto Scaling将终止运行状况不佳的实例并自动将其替换为新实例。