如何为多个数据源创建/配置 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 应用程序配置端口

如何为 Riak 配置连接池

如何为 Spring Boot 应用程序配置嵌入式 Tomcat 虚拟主机?

如何为具有 Spring Security 配置的 Spring Boot API 编写单元测试

如何为多个队列管理器创建多个 MQQueueConnectionFactory

如何为JSP配置spring boot mvc app?