自学内容网 自学内容网

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


原文地址:https://blog.csdn.net/weixin_44929475/article/details/143387406

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!