在Consul,可以查看SpringBoot应用程序中配置的健康状态。
或者我们是否可以让Consult拉出/调用某个服务的任何服务/URL,以便在Consult中查看响应?
Consul正在使用健康终结点来确定服务实例是否健康。如果您想要自定义健康状态(考虑一些自定义度量),那么您应该实现HealthIndicator接口。
通过在Application.Properties中设置Management.Security.Enabled=False
,可以在health api中公开更多信息
在这种情况下,您将在Consuld admin UI中看到类似于您的服务的内容
HTTP GET http://192.168.0.102:8080/health: 200 Output: {"description":"Composite Discovery Client","status":"UP","discoveryComposite":{"description":"Composite Discovery Client","status":"UP","discoveryClient":{"description":"Composite Discovery Client","status":"UP","services":["application","consul"]}},"diskSpace":{"status":"UP","total":499963170816,"free":341478899712,"threshold":10485760},"consul":{"status":"UP","leader":"127.0.0.1:8300","services":{"application":[],"consul":[]}},"hystrix":{"status":"UP"}}
您可以将健康URL配置到不同的endpoint。例如,如果您指定spring.cloud.convers.discovery.HealthCheckPath=/health2
,那么您的spring-boot实例将注册到以下json(请参阅下面的日志片段):
Registering service with consul: NewService{id='application', name='application', tags=[], address='192.168.0.102', port=8080, enableTagOverride=null, check=Check{script='null', interval='10s', ttl='null', http='http://192.168.0.102:8080/health2', tcp='null', timeout='null', deregisterCriticalServiceAfter='null', tlsSkipVerify=null, status='null'}, checks=null}
对于我一直在开发的一个微服务,我创建了一个自定义健康检查类,扩展了AbstractHealthIndicator,并能够在中获得输出 但当我向领事注册服务时,健康检查状态为失败。 尝试将执行器url配置为领事健康检查为spring。云领事发现健康检查url=http://localhost:8080/actuator/health。但它仍然失败,出现错误http://localhost:8566/
从这份官方文件中,很难确定这两个模块之间有什么区别。 谁能提供一个官方和规范的答案来解释两者的区别吗?
{“Status”:“Down”} 我需要做什么才能显示自定义健康状况指示器?
Spring Boot执行器的两个版本(1.2.5和1.3.0)在HealthMvcEndpoint,isUnrestricted()方法(&&and)中的实现存在差异。我明白这是为了保留这些限制 http://docs.spring.io/spring-boot/docs/current-snapshot/reference/htmlsingle/#production-ready-health
我添加了执行器依赖 按照教程中的建议 但是当我点击时,它不会给出预期的结果。上面写着 Spring Boot版本为1.5.4。和Java1.8需要做哪些附加设置?