Spring Boot Admin应用

1. 简介

Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控Spring Boot应用程序。它主要由两个部分构成:服务端(server)和客户端(client)。以下是对Spring Boot Admin的主要功能和特点的解释:

  1. 监控和管理界面

    1. Spring Boot Admin提供了一个基于Web的用户界面,用于展示和管理Spring Boot应用程序的运行状态。
  2. 集成Spring Boot Actuator

    1. 它利用Spring Boot Actuator提供的端点信息,以图形化的方式展示应用的健康状态、指标、配置等。
  3. 功能特性

    1. 显示健康状态及详细信息,如JVM和内存指标、数据源指标、缓存指标。

    2. 跟踪并下载日志文件。

    3. 查看JVM系统和环境属性。

    4. 查看Spring启动配置属性。

    5. 方便的日志级别管理。

    6. 查看线程转储。

    7. 视图HTTP traces。

    8. 查看HTTP端点。

    9. 查看计划任务。

    10. 查看和删除活动会话(使用spring-session)。

    11. 状态更改通知(通过电子邮件、Slack、Hipchat等)。

    12. 状态变化的事件日志(非持久性)。

  4. 服务端和客户端

    1. 服务端提供用户界面,展示和交互Spring Boot Actuators。

    2. 客户端用于在服务端注册,并允许访问Actuator端点。

  5. 快速开始

    1. 要使用Spring Boot Admin,首先需要设置一个Spring Boot应用。服务端可以作为servlet或webflux应用程序运行,需要添加相应的Spring Boot Starter。
  6. 注册客户端应用

    1. 每个想要注册的应用都需要包含Spring Boot Admin Client。为了保护端点,还需要添加spring-boot-starter-security
  7. 版本兼容性

    1. Spring Boot Admin 2.0版本已经全面支持Spring Boot 2.x版本,能够很好地与Spring Boot 2.x集成的微服务架构协同工作。
  8. UI 改进

    1. 新的UI界面更加简洁美观,提供了更多的信息展示和交互功能。
  9. 健康信息增强

    1. 支持更详细的健康检查信息,包括磁盘空间、数据库连接、缓存统计等。
  10. 事件通知

    1. Spring Boot Admin 2.0支持通过邮件、Slack等方式发送事件通知,帮助开发者及时获取应用状态变化信息。

2. 实例

2.1 服务端(server)

添加依赖

XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.7.12</version>
</dependency>
<!-- spring-boot-admin-starter-client -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.7.12</version>
</dependency>

启动类需要添加@EnableAdminServer 注解

java 复制代码
@SpringBootApplication
@EnableAdminServer
public class AdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminApplication.class, args);
    }
}

application.yml

XML 复制代码
server:
  port: 9001 # UI端口,注册端口

接下来启动服务器(需要先启动)

2.2 客户端(client)

2.2.1 Client 1

2.2.1.1 添加依赖
XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.7.12</version>
</dependency>
<!-- spring-boot-admin-starter-client -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.7.12</version>
</dependency>
  • Spring Boot Actuator的启动器,它提供了生产环境下监控和管理Spring Boot应用的功能。Actuator允许你监控应用的健康状态、度量信息、环境配置、HTTP追踪、线程转储等。

  • Spring Boot Admin的客户端启动器,用于将Spring Boot应用注册为Spring Boot Admin服务器的客户端。当你的应用包含了这个依赖后,它会自动连接到配置的Spring Boot Admin服务器,并将自己注册为一个可管理的客户端。这样,Spring Boot Admin服务器就能够收集来自这个客户端应用的监控数据,包括Actuator暴露的所有端点信息。客户端应用可以通过这些数据被监控和管理,例如查看健康状态、查看日志、管理配置等。

2.2.1.2 application.yml
XML 复制代码
server:
  port: 1111

# actuator 开启全部端点
management:
  endpoints:
    enabled-by-default: true
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      enabled: true
      
# 注册到 spring-boot-admin-server
spring:
  boot:
    admin:
      client:
        url: http://localhost:9001
  • 自定义该程序的端口

  • 开启actuator端点

  • 客户端注册到server

2.2.1.3 启动客户端

2.2.2 Client 2

2.2.2.1 添加依赖
XML 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- spring-boot-admin-starter-client -->
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-client -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.4.2</version>
</dependency>

可以看到client依赖的版本与上一个不同,因为所使用的Spring start依赖是不同的,用上一个应用的依赖版本,这个客户端注册不到服务中。

2.2.2.2 application.yml
XML 复制代码
# actuator 开启全部端点
management:
  endpoints:
    enabled-by-default: true
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      enabled: true
spring
  boot:
    admin:
      client:
        url: http://localhost:9001
2.2.2.3 启动客户端

2.3 测试

2.3.1 控制台
XML 复制代码
d.c.b.a.server.services.StatusUpdater    : Couldn't retrieve status for Instance(id=a80586157
4b2, version=3, registration=Registration(name=spring-boot-application, managementUrl=http://
192.168.6.14:1111/actuator, healthUrl=http://192.168.6.14:1111/actuator/health, serviceUrl=
http://192.168.6.14:1111/, source=http-api), registered=true, statusInfo=StatusInfo(status=
UP, details={}), statusTimestamp=2024-10-31T01:20:31.793Z, info=Info(values={}),

当客户端启动后,在服务器应用的控制台会打印出上述信息,代表客户端已经注册

2.3.2 Server UI

访问http://localhost:9001(服务端的启动地址)

两个客户端都注册到了服务器

点击应用墙,进入具体客户端实例,查看相关信息

其他的留给同学们一起探索!!!

不积跬步,无以至千里 --- xiaokai

相关推荐
卓越小Y3 分钟前
配置jellyfin docker 硬件加速
java·spring cloud·docker
白萝卜弟弟6 分钟前
【JAVA】正则表达式中的捕获组和非捕获组
java·正则表达式
袁庭新27 分钟前
LuaRocks如何安装数据库驱动?
java·数据库·redis·lua·luarocks·袁庭新
hummhumm35 分钟前
第 10 章 - Go语言字符串操作
java·后端·python·sql·算法·golang·database
nukix1 小时前
Mac Java 使用 tesseract 进行 ORC 识别
java·开发语言·macos·orc
月光光心慌慌。1 小时前
新日撸java三百行` 新手小白java学习记录 `Day1
java
蘑菇丁1 小时前
ranger-kms安装
java·ide·eclipse
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】内存可见性问题 & volatile
java·开发语言·java-ee
weixin_462428471 小时前
使用 Caffeine 缓存并在业务方法上通过注解实现每3到5秒更新缓存
java·缓存
程序媛小果1 小时前
基于java+SpringBoot+Vue的桂林旅游景点导游平台设计与实现
java·vue.js·spring boot