我对弹性负载均衡器健康检查和亚马逊EC2健康检查有点困惑。
在将运行状况检查添加到自动缩放组中时,会显示:
如果已将一个或多个负载均衡器附加到自动缩放组,并且某个实例未通过负载均衡器运行状况检查,则默认情况下,自动缩放不会替换该实例。
如果启用负载均衡器运行状况检查,而某个实例未通过运行状况检查,则自动缩放将认为该实例不正常并替换它。
因此,如果我不启用ELB健康检查,EC2健康检查将起作用,如果某个实例失败,健康检查自动缩放将考虑不健康的实例并替换它,如果我启用ELB健康检查,同样的事情也会发生。那么ELB健康检查和EC2健康检查有什么区别呢?
EC2健康检查从虚拟机管理程序和网络的角度观察可用性。例如,在硬件出现问题的情况下,检查将失败。此外,如果一个实例配置错误并且不响应网络请求,它将被标记为有故障。
ELB健康检查验证实例上的指定TCP端口正在接受连接,或者指定的网页返回2xx代码。因此,ELB健康检查更聪明一些,可以验证实际的应用程序是否工作,而不只是验证实例是否工作。
也就是说,还有第三种检查类型:自定义健康检查。如果应用程序不能通过简单HTTP请求进行检查,并且需要高级测试逻辑,则可以在代码中实现自定义检查,并通过API:health Checks for Auto Scaling Instances来设置实例健康状况
在设置ELB健康检查的对话框中,它会声明: 如果实例未通过健康检查,它将自动从负载均衡器中删除。自定义健康检查以满足您的特定需要。 当健康检查失败时,将从ELB后面删除实例。我的问题是围绕“健康门槛”设置。当你悬停在帮助上时,它会说: 在声明EC2实例健康之前连续运行状况检查成功的次数。 如果实例声明为健康的,它是否被拉回负载平衡组?
SOFABoot 为 Spring Boot 的健康检查能力增加了 Readiness Check 的能力。如果你需要使用 SOFA 中间件,那么建议使用 SOFABoot 的健康检查能力的扩展,来更优雅的上线应用实例 引入健康检查扩展 要引入 SOFABoot 的健康检查能力的扩展,只需要引入以下的 Starter 即可: <dependency> <groupId>com.alipay
健康检查配置概述。 filter.http.HealthCheck filter.http.HealthCheck proto { "pass_through_mode": "{...}", "endpoint": "...", "cache_time": "{...}" } pass_through_mode (BoolValue, REQUIRED) 指定过滤器是否在传递模式下运
健康检查架构概述。如果为集群配置了健康检查,则会发出相应的统计信息。详见请参考统计相关文档。 HealthCheck HealthCheck.Payload HealthCheck.HttpHealthCheck HealthCheck.TcpHealthCheck HealthCheck.RedisHealthCheck HealthCheck HealthCheck proto { "ti
健康检查架构概述。 如果为集群配置了健康检查,则会发出相应的统计信息。并且记录在这里。 { "type": "...", "timeout_ms": "...", "interval_ms": "...", "unhealthy_threshold": "...", "healthy_threshold": "...", "path": "...", "send": [
健康检查配置概述。 { "name": "health_check", "config": { "pass_through_mode": "...", "endpoint": "...", "cache_time_ms": "..." } } pass_through_mode (required, boolean) 指定过滤器是否在通过模式下运行。 end