1.Spring Boot Admin 是什么
Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一步骤可以直接向服务端注册,也可以通过 Eureka 或者 Consul 进行注册。而 Spring Boot Admin Server 通过 Vue.js 程序监控信息进行可视化呈现。并且支持多种事件通知操作。
2. Spring Boot Admin 服务端
Spring Boot Admin 服务端是基于 Spring Boot 项目的,如何创建一个 Spring Boot 项目这里不提,你可以参考之前文章或者从 https://start.spring.io/ 直接获得一个 Spring Boot 项目。
2.1. 添加依赖
只需要添加 web 依赖和 Spring-boot-admin-starter-server 依赖。
<dependency>
2.2. 启动配置
为了和下面的客户端端口不冲突,先修改端口号为 9090。
server:
port: 9090
添加 @EnableAdminServer
注解启用 Spring Boot Admin Server 功能。
@EnableAdminServer
服务端已经配置完成,启动项目进行访问就可以看到 Spring Boot Admin Server 的页面了。
3. Spring Boot Admin 客户端
创建 Spring Boot 项目依旧不提,这里只需要添加 Spring Boot Admin 客户端需要的依赖,在项目启动时就会增加相关的获取信息的 API 接口。然后在 Spring Boot 配置文件中配置 Spring Boot Admin 服务端,就可以进行监控了。
3.1 客户端依赖
pom.xml
<dependency>
3.2 客户端配置
客户端配置主要为了让客户端可以成功向服务端注册,所以需要配置客户端所在应用相关信息以及 Spring Boot Admin Server 服务端的 url。
server:
port: 8080
spring:
application:
# 应用名称
name: sjfx-api-search
jmx:
enabled: true
boot:
admin:
client:
# 服务端 url
url: http://127.0.0.1:9090
instance:
# 客户端实例 url
service-url: http://127.0.0.1:8080
prefer-ip: true
# 客户端实例名称
name: sjfx-api-search
management:
endpoints:
web:
exposure:
# 暴漏的接口 - 所有接口
include: "*"
配置中的 include: "*"
公开了所有的端口,对于生产环境,应该自信的选择要公开的接口。
Spring Boot Admin 可以获取应用中的定时任务,所以在代码中增加一个定时任务计划,每 20 秒输出一次当前时间,日志级别为 INFO
&#