当前位置: 首页 > article >正文

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)

添加依赖

<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 注解

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

application.yml

server:
  port: 9001 # UI端口,注册端口

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

2.2 客户端(client)

2.2.1 Client 1

2.2.1.1 添加依赖
<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

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 添加依赖
<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
# 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 控制台
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


http://www.kler.cn/a/378914.html

相关文章:

  • Vehicle OS软件平台解决方案
  • Linux中断、软中断、MMU内存映射-深入理解
  • 用ChatGPT提升工作效率:从理论到实际应用
  • (蓝桥杯C/C++)—— 编程基础
  • 面试题:JVM(二)
  • CSS 动画:网页设计的动态之美
  • 照明灯十大知名品牌有哪些?2024灯具十大公认品牌排行榜出炉!
  • 洛阳建筑设计资质电子化申报操作流程
  • 怎麼解除IP阻止和封禁?
  • 2-139 基于matlab的弹道轨迹仿真
  • 低压补偿控制器维修措施
  • ES6中数组新增了哪些扩展?
  • Java项目实战II基于Spring Boot的智能家居系统(开发文档+数据库+源码)
  • 【jvm】为什么Xms和Xmx的值通常设置为相同的?
  • 利用Matlab工具生成滤波器
  • 在Springboot中更好的打印日志
  • 基于STM32的数控DC-DC电源系统设计
  • 【MyBatis源码】SqlSession实例创建过程
  • 《Python修炼秘籍》01踏上编程之旅
  • 大零售时代下融合发展的新路径:定制开发技术的应用与思考
  • IT 运维:流量回溯与视频质量监控的秘籍
  • vue3项目中实现el-table分批渲染表格
  • scrapy服务器重试机制失效问题
  • 【生物学&水族馆】观赏淡水鱼检测系统源码&数据集全套:改进yolo11-dysample
  • Python规整电商编码
  • docker 启动 neo4j