赞
踩
对于Spring Boot的应用,除了使用HTTP或TCP端口检测来进行应用健康检查之外,您也可以使用Actuator组件实现定制化健康检查。
相关介绍
Actuator组件是Spring Boot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator,您可以很方便地查看并统计应用系统的某些监控指标。您也可以通过Actuator组件自定义您的健康检查程序。更多信息,请参见Spring Boot Actuator官方文档。
操作步骤
在Maven中添加所需依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
设置application.properties配置文件,显示健康检查详细信息。
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always #显示健康检查详细信息,默认为never,即不显示。
通过自定义检查程序。我这边是自定义rabbit,就用/actuator/health/rabbit路径来单独获取这个健康指示器的结果。
新建RabbitHealthIndicator.java文件,输入代码,实现您业务中特定的检查内容。例如检查数据库连接是否正常,线程池状态等。示例代码如下所示:
@Component public class RabbitHealthIndicator extends AbstractHealthIndicator { private final RabbitTemplate rabbitTemplate; public RabbitHealthIndicator( RabbitTemplate rabbitTemplate) { super("Rabbit health check failed"); Assert.notNull(rabbitTemplate, "RabbitTemplate must not be null"); this.rabbitTemplate = rabbitTemplate; } @Override protected void doHealthCheck(Health.Builder builder) throws Exception { System.out.println("check---------rabbitmq"); builder.up().withDetail("version", getConnection().getServerProperties().get("version").toString()); builder.up().withDetail("product", getConnection().getServerProperties().get("product").toString()); builder.up().withDetail("platform", getConnection().getServerProperties().get("platform").toString()); builder.up().withDetail("capabilities",(Map<String, Object>)getConnection().getServerProperties().get("capabilities")); } private Connection getConnection() { return this.rabbitTemplate.execute((channel) -> channel.getConnection()); } @Override public Health getHealth(boolean includeDetails) { return super.getHealth(includeDetails); } }
设置完成后,运行应用,进行健康检查。
通过直接访问默认端口进行健康检查。示例命令如下:
请求接口
localhost:8080/actuator/health/rabbit #rabbit为健康检查指示器类名前缀,请以自己定义的类名为准。
返回信息如图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。