1000字彻底搞懂SpringBootActuator组件!

B站影视 日本电影 2025-06-02 14:14 1

摘要:Spring Boot Actuator通过HTTP endpoints或者JMX来管理和监控Spring Boot应用,如服务的审计、健康检查、指标统计和HTTP追踪等。

Spring Boot Actuator通过HTTP endpoints或者JMX来管理和监控Spring Boot应用,如服务的审计、健康检查、指标统计和HTTP追踪等。

Spring Boot Actuator同时还可以与AppOptics、Datadog、Elastic、Influx、Prometheus等第三方监控系统进行整合。完善的监控系统可以使业务系统更健壮。本节主要介绍Spring Boot Actuator的相关知识与实践应用。

Spring Boot Actuator Endpoints可以让开发者监控或者动态地改变应用。Spring Boot Actuator内置了一系列的端点,也可以自定义端点。默认情况下,Spring Boot Actuator暴露了health和info两个端点。例如,访问health端点可以进行应用健康状态查询,如果应用健康,则返回UP,如果不健康,则返回DOWN。通常情况下使用HTTP的方式访问端点信息,默认的访问路径是/actuator。如果访问health端点,则使用/actuator/health即可。如表8.1所示为Spring Boot提供的一些端点。

表8.1 Spring Boot提供的端点

如果程序是Web应用,还可以使用下面的端点,如表8.2所示。

表8.2 Web应用可以使用的端点

默认情况下,除了shutdown端点之外,其他端点都是启用的。如果想要启用shutdown端点,可以通过配置management.endpoint..enabled属性来实现。具体配置如下:

management:

endpoint:

shutdown:

enabled: true

如果想要禁用默认的端点,而只开启自己想要的端点,可以使用下面的配置:

management:

endpoints:

enabled-by-default: false

endpoint:

info:

enabled: true

基于HTTP的方式默认暴露了health和info端点。如果想要暴露更多的端点,需要使用下面的配置:

management:

endpoints:

web:

exposure:

include: "*"

exclude: "env,Beans"

Spring Boot Actuator端点的默认访问路径是/actuator,如果想要修改该路径,需要进行如下配置:

management:

endpoints:

web:

base-path: "/"

path-mapping:

health: "healthcheck"

同样可以修改访问的端口,配置信息如下:

management:

server:

port: 8081

如果想要修改端点的属性配置,可以进行如下修改:

management:

endpoint:

health:

show-details: always

除了Spring Boot Actuator提供的通用端点之外,开发中还可以自定义端点。Spring Boot提供了@Endpoint注解,带有@Endpoint注解的Bean即为自定义端点。@Jmx-Endpoint和@WebEndpoint 注解可分别通过JMX或者HTTP方式进行访问。

自定义端点提供了方法注解@ReadOperation、@WriteOperation和@Delete-Operation,分别对应HTTP访问方法的GET、POST和DELETE。

下面自定义一个简单的端点,代码如下:

//自定义端点

@WebEndpoint(id="userEndpoint")

@Component

public class UserEndpoint {

@ReadOperation

public String readUserEndpoint{

return "test read userEndpoint!";

}

@WriteOperation

public String writeUserEndpoint{

return "test write userEndpoint!";

}

@DeleteOperation

public String deleteUserEndpoint{

return "test delete userEndpoint!";

}

}

定义好端点Bean之后,需要暴露这个端点,配置信息如下:

management:

endpoints:

web:

exposure:

include: userEndpoint

访问http://localhost:8080/actuator即可看到userEndpoint端点已经暴露出来了。分别用GET、POST和DELETE方式访问http://localhost:8080/actuator/userEndpoint,将返回不同的信息。

来源:大数据架构师

相关推荐