大家好,我是栈长。
前言哈哈,略标题党,其实 Spring Boot Admin 这个项目已经开源好些年了,栈长看了下:
有记录的最早版本是在 2014 年,和 Spring Boot 在同一年相继开源:
https://github.com/codecentric/spring-boot-admin
Github 超过 10k+ 的关注量,不可谓不火爆。。
可能还有一些小伙伴还没用过:
- 它到底是个什么项目?
- 它都有什么用处?
- 和 Spring Boot 又有什么关系呢?
本文栈长带你解开这些谜团。。
Spring Boot Admin 简介Spring Boot Admin = Spring Boot + Admin,用于管理和监控 Spring Boot 应用程序,它并不是 Spring Boot 官方提供的,而是某个社区开源的。
主要功能如下:
- 显示健康状况
- 显示详细指标(如:jvm、内存,micrometer、数据源、缓存等)
- 监控并下载日志文件
- 显示 jvm 中的系统、以及环境变量
- 显示 Spring Boot 配置属性
- 简单的日志级别管理
- 支持与 JMX bean 交互
- 显示线程堆栈
- 下载堆信息
- 显示 http 跟踪
- 显示 http 端点
- 显示计划任务
- 显示/ 删除活动会话
- 显示 Flyway / Liquibase 迁移
- 状态变更通知
看着还挺实用的吧?能了解很多 Spring Boot 系统的相关信息。
实战废话少说,现在开始来实战。
Spring Boot 应用程序通过 Spring Boot Admin Client 以 http 的方式注册,Spring Cloud 应用程序则通过 Eureka, Consul 等进行注册,UI 只是 Spring Boot Actuator 端点之上的 Vue.js 应用程序。
本文以 Spring Boot 应用程序进行演示,所以,我们先搭个 Spring Boot Admin Server(服务端),再搭建个 Client(应用程序客户端)测试下。
Spring Cloud 服务注册可以参考:
1、搭建 Spring Boot Admin Serverhttps://codecentric.github.io/spring-boot-admin/#discover-clients-via-spring-cloud-discovery
Spring Boot 基础就不介绍了,推荐下这个实战教程:
https://github.com/javastacks/spring-boot-best-practice
或者看栈长之前的 Spring Boot 系列教程:
年轻人的第一个 Spring Boot 应用,太爽了!
首先通过上述教程构建一个简单的 Spring Boot 初始项目,端口为:8080。
然后添加 Spring Boot Admin Server 依赖:
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin-starter-server.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
在启动类上添加 @EnableAdminServer
以启用 Spring Boot Admin Server:
/**
*