tri*_*lem 5 java spring spring-boot
我们确实在我们的应用程序中使用了 Spring Boot Health Checks。在其中一个已检查的应用程序中,数据库似乎无法及时回答。我们正在使用 DataSourceHealthIndicator,这会在几秒钟后回答,但有一个例外,这很好,但需要不同的时间范围才能返回。
我们能否在这个 HealthIndicator 上设置一个超时(很可能也在其他人),以便 HealthIndicator 在最近的 2 秒后报告错误,如果无法建立到数据库的连接?
或者我们可以询问数据源是否还有可用的开放连接?
我知道,我们应该解决这些连接的问题,我们已经在处理这个问题,但是对于这样的事情进行 HealthCheck 也会很好。
您可以在 application.properties 中禁用默认的数据库健康指示器
management.health.db.enabled=false
Run Code Online (Sandbox Code Playgroud)
并实现HealthIndicator具有所需行为的自定义,如here所述。
在您的自定义HealthIndicator实现中,您可以使用一个不同的JdbcTemplate,它的期望超时值为 2 秒,如下所示:
JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.setQueryTimeout(2);
jdbcTemplate.execute(...);
Run Code Online (Sandbox Code Playgroud)
如果执行调用抛出异常,您的指标应返回Health.down(),否则Health.up()应返回。
| 归档时间: |
|
| 查看次数: |
4675 次 |
| 最近记录: |