我跟随http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html使用Spring Cloud构建分布式系统。
除尤里卡客户健康检查外,所有工作均按预期进行。
我有过
eureka:客户端:healthcheck:启用:true
把我的服务指向不存在的config_server,这导致
超文本传输协议://myservice: 8080/Health{status:"DOWN"}
但是Eureka服务器仍然将此实例显示为UP并继续向其发送流量。
我错过了什么?
Spring启动:1.2.8。释放
sping-Cloud-Netflix:1.0.4。发布
好的,我想我找到了。
根据https://jmnarloch.wordpress.com/2015/09/02/spring-cloud-fixing-eureka-application-status/此功能仅在Spring Cloud 1.1上可用。
为了使它与1.0.4一起工作,我需要实现我自己的HealthCheckHandler。
感谢@xtreme-biker提出Spring Cloud版本问题。
您必须显式设置eureka。客户健康检查。enabled=true将Spring Boot健康指示器链接到Eureka注册。源代码参考:此处。
SOFABoot 为 Spring Boot 的健康检查能力增加了 Readiness Check 的能力。如果你需要使用 SOFA 中间件,那么建议使用 SOFABoot 的健康检查能力的扩展,来更优雅的上线应用实例 引入健康检查扩展 要引入 SOFABoot 的健康检查能力的扩展,只需要引入以下的 Starter 即可: <dependency> <groupId>com.alipay
健康检测是对应用进行check,判定应用是否在正常运行。 健康检测有三种方案 只对tcp端口进行检测 只通过http的方式check需要提供path地址 以上两种结合
健康检查配置概述。 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