如何为多个数据源创建/配置 Spring Actuator?
Posted
技术标签:
【中文标题】如何为多个数据源创建/配置 Spring Actuator?【英文标题】:How Do I Create/Configure Spring Actuator for Multiple Datasources? 【发布时间】:2017-02-02 16:01:25 【问题描述】:我有一个包含多个数据源的项目,并且还实现了弹簧执行器。当我访问 /health 时,我得到以下信息:
"status":"DOWN"
这对我来说没有任何意义。什么下?另外,为什么缺少数据库健康?我假设这是因为我的数据源前缀是默认的。
如何配置执行器 /health 以显示两种数据源的健康状态?
【问题讨论】:
【参考方案1】:其实,健康端点检查的指标不止一个。您只有"status":"DOWN"
,因为默认情况下 Spring Boot 应用程序是安全的。
你可以修改你的application.properties
endpoints.health.sensitive=false
显示所有健康指标。
您可以在此页面中找到所有自动配置的健康指标: http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#_auto_configured_healthindicators
此外,您还可以通过实现HealthIndicator
来编写自己的健康指标。
@Component
public class MyHealthIndicator implements HealthIndicator
@Override
public Health health()
int errorCode = check(); // perform some specific health check
if (errorCode != 0)
return Health.down().withDetail("Error Code", errorCode).build();
return Health.up().build();
【讨论】:
好的,很酷,但是如何将我的HealthIndicator
信息添加到 /health 端点?
您不需要显式添加它。 Spring 会扫描你的指标并自动添加它。
好的,我想这是我的困惑部分。我知道我的自定义指标已被调用,但 /health 端点仍然显示 "status":"DOWN"
我希望获得有关我的指标的更多信息,而不仅仅是“状态”
我明白了。这是对management.security.enabled
的限制,甚至不需要自定义指标。
现在已弃用【参考方案2】:
由于这个执行器现在已被弃用(也许这对某人有帮助),你可以使用这个:
management:
endpoint:
health:
show-details: always
【讨论】:
以上是关于如何为多个数据源创建/配置 Spring Actuator?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Spring Boot 应用程序配置嵌入式 Tomcat 虚拟主机?
如何为具有 Spring Security 配置的 Spring Boot API 编写单元测试