注:本文使用 Maven 作为项目管理工具,如果需要 Gradle 可以对应修改。
创建一个最简单的 Spring Boot + 项目,也可以直接在 Spring Initializr 填写必要信息后下载 JAR 包。首先在 pom.xml
替换 <dependencies>
部分为如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
其实就是把下面这段替换掉:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
注:使用 spring-boot-starter
依赖会无法正常启动服务器。spring-boot-starter-webflux
与 spring-boot-starter-web
相比,前者使用 Netty ,后者使用 Tomcat ,会与 spring-boot-starter-actuator
冲突。
执行 ./mvn install
编译本项目,启动 java -jar target/demo-0.0.1-SNAPSHOT.jar
,访问 curl http://localhost:8080
,会报路径不存在:
{
"timestamp": "2020-02-24T02:11:52.315+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/"
}
什么是 Spring Boot Actuator ?
Spring Boot Actuator 可以用来监控 Spring Boot 应用,比如健康检查、审计、统计和 HTTP 追踪等,这些特性可以通过 JMX 或者 HTTP Endpoints 获得。
访问 curl localhost:8080/actuator
即可获得已开放的数据。
什么是 Micrometer ?
简单来说,Micrometer 是将 Spring Boot Actuator 开放的数据转变成不同监控系统,如 Prometheus、Influx 等,能接受的数据格式,Spring Boot Actuator 直接获得的数据格式不能被这些监控系统直接使用。这里我们使用 Prometheus,添加 micrometer-registry-prometheus
依赖:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
重新编译本项目,启动后访问 curl localhost:8080/actuator/prometheus
。