consul提示某服务service checks错误
启动某个微服务后,consul控制台看到该服务service checks有个错误。
访问
http://localhost:8500/v1/agent/checks
查看服务状态Status,提示该服务状态为critical。访问output提供的地址(去掉url后的冒号),
http://192.168.1.102:8006/actuator/health
并没有详细信息。
修改yaml配置文件,添加如下配置:
management:
endpoint:
health:
show-details: always
重启服务后,访问http://192.168.1.102:5001/actuator/health就可以看到详细的报错信息了。
注:
在本地启动服务注册到远程服务器时,因为远程服务器无法访问到本地,故该服务service checks会一直有错误,
配置心跳检测和健康检查
心跳检测和健康检查是两种不同的存活监控方案。
当我们配置spring.cloud.consul.discovery.heartbeat.enabled=true时,spring cloud使用心跳检查push机制定期向consul server汇报自身存活情况,逾期没有汇报则server认为异常。
当heartbeat.enabled=false时,启用健康检查机制。我们可以通过以下参数配置健康检查的间隔。
spring.cloud.consul.discovery.health-check-interval=1s