开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术:Actuator】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/80/detail/15907
Actuator
spring-boot-starter-actuator
处理我们前面所提到的常见的starter以外,spring-boot 提供了一个特别的starter,叫做 spring-boot-starter-actuator,这个start 不是用来去完成特定的业务功能,它的主要的功能是用来做监控,也就是我们基本上在这个 start 的 java上头是不会直接引用去写任何代码,引入了这个 start,我们的这样的一个spot的应用具备了监控功能。监控是我们这样的一个多服务器的这样的一个结构,就是我们微服务体这个中间必不可少的一个最基本的性能,Spring boot 对于这个微服务都提供了这样的一个监控的支持,就是底层的支持。所以说当我们把这样的一个 start 引进来以后,我们的部署上去的 spring-boot 的一个应用就具备了这样的一个监控健康检查审计,以及一些控制的一些功能。我们具体的这个功能我们来看,我们加上了这个 acrid 的这样的一个 start 以后,这个程序会变成什么样,以及我们给大家介绍一个可以去简单管理所有的这个 Spring boo t应用的这样的一个 Adminui 这样的一个程序
<?xml version="1.0" encoding="UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
" >https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.edu.xmu</groupId>
<artifactId>adminui</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>adminui</name>
<description>UI for Actuator</description>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
</project>
我们看一下 spring-boot 跑起来是个什么样?首先把它做一下打包。打包完成以后,我们用 spring-boot 的 run把它跑起来。跑起来以后,我们可以在浏览器中间输入localhost:8080/actuator。这个服务器的 extra 所返回的一些相关的信息。这
样的信息其实是不太适合看,所以我们使用了另外一个包。
也就是 spring-boot admin start 这样的一个工程来收集 Accurate 的信息。然后以
web 的方式把它显示出来。工程在我们的admin UI目录下。打开admin UI的目录。如果没有 input 先把它 add project。看它的 pom 文件。它的 pom 文件非常的简单。它的 pom 文件里面用了 spring-boot admin Starter server。然后它的web服务器是用的非主赛事技术站的 web flux,所以说它不是用的 start web,它是用的 start web flux。然后它有这个 boot starter。
以及这个accurate。我们可以看一下代码的代码里头没有任何的代码其实就是一个Application,然后前面加个 spring-boot 的 Application,然后它加了一个自己的标签。这个标签的作用是使得我们的 serve 能够跟得起来。它的配置中间只写了它的端口号是在8081。所以我们刚才在 Out wear demo 的那个例子,我们可以看到它的配置文件中间。它写了s pring-boot admin URL。是因为我们两个应用都装在一台机器上。所以它向在本地的这个8081端口登记信息,我们把 admin UI跑起来。编译打包。然后用 spring-boot 的 run 跑起来。在本地的这个8081端口。能
看到它的管理界面有一个应用已经登记上来了,
是运行在8080端口的一个应用。我们点进去的话是可以看到这个应用的一些相关的信息的。我们点应用墙这个菜单。
这里头如果有多个应用的话,的确是会有多个出来,然后现在只有一个点进去的话,我们就能看到它在 accurate 里头所能看到的一些信息,这样子显示变得更加的友好,比如说我们能看到它的这个。环境信息。比如说我们能看到它的所有的bin的信息。能看到它配置信息,以及它的一些定时任务等等。另外我们还能看到它的一些各个吧的日志的配置。JVM 等等这些相关的信息,这就是我们的 admin UI。