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

相关推荐
sunshine22 girl18 分钟前
Java学习七 Java 项目实战2-注册业务
java·学习
萧瑟余晖27 分钟前
Spring Boot 核心理念与快速上手
spring boot
陈随易31 分钟前
bm2,Node.js 与 Bun 项目部署新选择
前端·后端·程序员
省钱兄--zs41 分钟前
北京24小时自助健身房系统软件开发实战:从架构设计到部署指南
java·数据仓库·spring boot·小程序·需求分析
youdexiang1 小时前
Android录音软件时间关键词检索功能分析
java·人工智能
架构技术专栏2 小时前
AI Agent 框架怎么选:从一次制度查询拆出技术边界
后端·面试
sunshine22 girl2 小时前
Java学习七 Java 项目实战1-项目创建和主页面搭建
java·开发语言·学习
code2cat2 小时前
Java进阶篇之AtomicStampedReference:引用回到原值,版本戳仍能记住变化
java·cas·并发编程·aba
泡茶喝茶写代码4 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据
明月_清风4 小时前
SaaS 的三层挣钱逻辑,正在被 AI 从第一层击穿
人工智能·后端