【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控
0. 前言
在之前的几章中,我们先搭建了一个项目骨架,又搭建了一个使用nacos的gateway网关项目,网关项目中并没有配置太多的东西。现在我们就接着搭建在Spring Cloud 微服务中另一个重要的项目 - Spring boot admin.
1. Spring Boot Admin 介绍

Spring Boot Admin 用来监控基于Spring Boot的应用,在Spring Boot Actuator的基础上提供了简洁的可视化Web UI。Spring Boot Admin 提供了以下功能:
- 显示应用的健康状态
- 显示应用的细节内容: JVM和内存信息,micrometer信息, 数据源信息,缓存信息等
- 显示 编译版本
- 查看和下载日志
- 查看jvm参数和环境变量值
- 查看Spring Boot项目配置
- 显示 thread dump
- 显示 http-traces
……
等一系列内容。
2. 创建一个 Spring Boot Admin项目
那么,我们就来创建一个Spring Boot Admin 项目吧。
2.1 创建 Spring Boot Admin 服务端
在manager 目录下,创建一个 monitor目录,并在monitor目录下创建一个pom.xml 文件,添加以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>monitor</artifactId>
<version>${revision}</version>
<packaging>jar</packaging>
<parent>
<artifactId>manager</artifactId>
<groupId>club.attachie</groupId>
<version>${revision}</version>
</parent>
</project>
在 manager/pom.xml 注册我们新建的项目模块:
<modules>
<module>gateway</module>
<module>monitor</module>
</modules>
在 monitor 创建如下目录:
.
├── pom.xml
└── src
└── main
├── java
└── resources
在根目录的pom.xml 添加 Spring Boot Admin 依赖:
先添加spring-boot-admin版本号变量:
<spring-boot-admin.version>2.2.3</spring-boot-admin.version>
并在dependencyManagement > dependencies 下添加:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
在monitor/pom.xml文件中添加:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
</dependencies>
运行
mvn clean install
检查并刷mvn引用缓存。
创建MonitorApplication类:
package club.attachie.nature.monitor;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableAdminServer
public class MonitorApplication {
public static void main(String[] args) {
SpringApplication.run(MonitorApplication.class, args);
}
}
启动后能看到如下界面:

3 与网关服务进行互通
在上一篇中,我们添加了Spring Cloud Gateway项目,到目前为止两个项目之间完全割裂没有关联。在这一节,我们在两者之间建立关联。也就是说,将gateway 项目引入Spring Admin Boot监听。
在 manager/gateway 的pom.xml 文件中加入如下引用:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
然后修改 gateway项目的启动端口,在resources/bootstrap.yml 添加:
server:
port: 8070
在 monitor中加入nacos引用:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
修改MonitorApplication 为:
package club.attachie.nature.monitor;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;
@SpringBootApplication
@EnableAdminServer
@RefreshScope
public class MonitorApplication {
public static void main(String[] args) {
SpringApplication.run(MonitorApplication.class, args);
}
}
创建monitor项目的bootsrap.yml:
spring:
application:
name: monitor
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
关于这里的配置 在上一篇 中有个错误,应该是 discovery > server-addr,不是 config > server-addr。两者有区别,discovery表示设置nacos为服务发现中心,config表示nacos为配置中心。
启动 gateway 项目和 monitor项目查看效果, 访问 8080端口:

可以看到两个应用可以被发现,如果没有设置monitor项目把nacos当做服务发现中心,将无法获取到具体在线的应用。点击 gateway 进去后可以查看到:

4. 总结
我们搭建了一个Spring Boot Admin 项目作为一个监控系统,后续会在这里添加更多的内容。
更多内容烦请关注我的博客《高先生小屋》

【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控的更多相关文章
- Java Spring Cloud 实战之路 - 1 创建项目
0. 前言 该项目使用Maven进行管理和构建,所以需要预先配置好Maven.嗯,在这个系列里就不做过多的介绍了. 1. 创建项目 先创建一个pom.xml 文件,添加以下内容: <?xml v ...
- 【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
0. 前言 在上一节中,我们创建了一个项目架构,后续的项目都会在那个架构上做补充. 1. Nacos 1.1 简介 Nacos可以用来发现.配置和管理微服务.提供了一组简单易用的特性集,可以快速实现动 ...
- Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案
一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...
- 3.开始使用Spring Cloud实战微服务
开始使用Spring Cloud实战微服务 3.1. Spring Cloud实战前提 3.1.1. 需要的技术储备 语言方面:可以使用Java.scala.Groo ...
- [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权
一. 前言 本篇实战案例基于 youlai-mall 项目.项目使用的是当前主流和最新版本的技术和解决方案,自己不会太多华丽的言辞去描述,只希望能勾起大家对编程的一点喜欢.所以有兴趣的朋友可以进入 g ...
- Spring Cloud实战: 基于Spring Cloud Gateway + vue-element-admin 实现的RBAC权限管理系统,实现网关对RESTful接口方法权限和自定义Vue指令对按钮权限的细粒度控制
一. 前言 信我的哈,明天过年. 这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT ...
- Spring Cloud实战 | 第十一篇:Spring Cloud Gateway 网关实现对RESTful接口权限控制和按钮权限控制
一. 前言 hi,大家好,这应该是农历年前的关于开源项目 的最后一篇文章了. 有来商城 是基于 Spring Cloud OAuth2 + Spring Cloud Gateway + JWT实现的统 ...
- Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Axios前后端分离模式下无感刷新实现JWT续期
一. 前言 记得上一篇Spring Cloud的文章关于如何使JWT失效进行了理论结合代码实践的说明,想当然的以为那篇会是基于Spring Cloud统一认证架构系列的最终篇.但关于JWT另外还有一个 ...
- Spring Cloud实战 | 第九篇:Spring Cloud整合Spring Security OAuth2认证服务器统一认证自定义异常处理
本文完整代码下载点击 一. 前言 相信了解过我或者看过我之前的系列文章应该多少知道点我写这些文章包括创建 有来商城youlai-mall 这个项目的目的,想给那些真的想提升自己或者迷茫的人(包括自己- ...
随机推荐
- nodejs server启动写法
http://www.phpstudy.net/c.php/18720.html node不利用框架怎么实现对静态HTML.css.js的服务? 初学nodeJS,在使用nodejs构建静态文件服务器 ...
- poj2987 最大闭合权子图基础题
Firing Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 10905 Accepted: 3291 Descript ...
- Flow Control
Exercise-01 Max Of Two Numbers Write a function that takes two numbers and returns the maximum of th ...
- 最优化之凸优化之Bregman算法
本文介绍了Bregman迭代算法,Linearized Bregman算法(及在求解Basis Pursuit问题中的应用)和Split Bregman算法(及在求解图像TV滤波问题中的应用). 由于 ...
- Web前端:1、HTML&CSS概述及结构
万维网联盟(World Wide Web Consortium)简称W3C,专门为了定义网页相关的标准而成立,如网页中的HTML.CSS.DOM.HTTP.XML等标准. 根据W3C标准,一个网页主要 ...
- MSC添加shard节点
1.MSC添加shard节点 mkdir -p /mongodb/38027/conf /mongodb/38027/log /mongodb/38027/datamkdir -p /mongod ...
- 实验三:Linux系统用户管理及VIM配置
项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 学习目标 1.学习Linux系统用户管理2.学习vim使用及配置 实 ...
- Java中的自动装箱拆箱
Java中的自动装箱拆箱 一.自动装箱与自动拆箱 自动装箱就是将基本数据类型转换为包装类类型,自动拆箱就是将包装类类型转换为基本数据类型. 1 // 自动装箱 2 Integer total = 90 ...
- 从软件开发到 AI 领域工程师:模型训练篇
前言 4 月热播的韩剧<王国>,不知道大家有没有看?我一集不落地看完了.王子元子出生时,正逢宫内僵尸作乱,元子也被咬了一口,但是由于大脑神经元尚未形成,寄生虫无法控制神经元,所以医女在做了 ...
- 跟着阿里学JavaDay06——Java基础语法(四)
一.方法 方法执行到return语句后,这个方法的执行就结束了,方法可以有返回值,但可以不用这个返回值.方法首先要定义,然后才能调用. public class TestMethod{ public ...