IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot-admin集成到现有springboot项目中 -> 正文阅读

[Java知识库]springboot-admin集成到现有springboot项目中

刚好最近疫情原因,导致不方便进业主方场地进行多系统开发,就学习了springcloud全家桶。
刚好学到springboot-admin系统监控,发现可以单独拆出来用,就顺手装到自己项目上去玩了。

一、springboot-admin用于管理和监控SpringBoot应用程序。

springboot-admin分为服务端Spring Boot Admin Server和客户端Spring Boot Admin Client,使用时,先开启服务端,然后启动客户端自动注册就可以使用啦。本身集成还是很简单的,一般常用的功能如下:
常见的功能或者监控如下:

  • 显示健康状况
  • 显示详细信息,例如
  • JVM和内存指标
  • micrometer.io指标
  • 数据源指标
  • 缓存指标
  • 显示构建信息编号
  • 关注并下载日志文件
  • 查看jvm系统和环境属性
  • 查看Spring Boot配置属性
  • 支持Spring Cloud的postable / env-和/ refresh-endpoint
  • 轻松的日志级管理
  • 与JMX-beans交互
  • 查看线程转储
  • 等等

界面如下:
在这里插入图片描述

二、接入使用

服务端

1、创建一个普通的springboot项目,引入如下依赖:

<!-- springBoot admin 监控 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.1.0</version>
    </dependency>

<!-- 开启验证-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <!-- 引入Web场景 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

2、然后配置端口及验证账密码:

spring.application.name=xxx-admin
server.port=29000
#配置admin工程登录的账号密码
spring.security.user.name=zc
spring.security.user.password=123456

3、接着在启动类配置注释及放行页面,放行页面具体不用管,按官网的抄就完事了

@SpringBootApplication
@EnableAdminServer
public class AdminApplication {

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

   //配置安全校验
   @Configuration
   @Order(Ordered.LOWEST_PRECEDENCE)
   public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
   	private final String adminContextPath;

   	public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
   		this.adminContextPath = adminServerProperties.getContextPath();
   	}

   	@Override
   	protected void configure(HttpSecurity http) throws Exception {
   		SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
   		successHandler.setTargetUrlParameter("redirectTo");
   		http.authorizeRequests()
   				.antMatchers(adminContextPath + "/assets/**").permitAll()
   				.antMatchers(adminContextPath + "/login").permitAll()
   				.anyRequest().authenticated()
   				.and()
   				.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
   				.logout().logoutUrl(adminContextPath + "/logout").and()
   				.httpBasic().and()
   				.csrf().disable();
   	}
   }
}

客户端

1、在现有的项目里,加入如下依赖:

    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

2、配置连接参数等

#要展示的应用名称
spring.application.name= springboot
#admin工程的url
spring.boot.admin.client.url=http://localhost:29000
#展示全部细节信息
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
#允许admin工程远程停止本应用
management.endpoint.shutdown.enabled=true
#admin工程的账号密码
spring.boot.admin.client.username=zc
spring.boot.admin.client.password=123456

**3、先启动服务器端,然后启动客户端即可,接入可能会花费点时间,耐心等一会儿即可。**在这里插入图片描述

踩的坑

1、服务端的springboot和springboot-admin版本一定要要匹配,谁都谁低都可能炸锅,还基本排查处理不了,反正我是不想花费那么多时间去排查,累。我用的springboot2.1.1和admin的2.1.0,也可以适当高一些,这个版本好像没有中文界面,看着麻烦。
2、客户端和服务端的admin版本一定要一样,不然又会遇到神奇的bug。
3、连不上,注意检查下端口是否开放,是否一致,账号密码是否一致,客户端是否暴露了端点等。
4、很多文章列举了邮件通知,但中国人一个是不喜欢用邮件,一个是定义麻烦,可以加上自定义通知。

自定义通知类,加入可服务端代码里即可。

package com.imooc.ecommerce.notifier;

import de.codecentric.boot.admin.server.domain.entities.Instance;
import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent;
import de.codecentric.boot.admin.server.notify.AbstractEventNotifier;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;

/**
 * @packageName:e-commerce-springcloud
 * @ClassName:ZcNotifier
 * @auther:zc
 * @date 2022/3/30 14:01
 * 通知告警信息
 * 主要是依靠继承AbstractEventNotifier,实现通知方法
 */
@Component
public class ZcNotifier extends AbstractEventNotifier {

    protected ZcNotifier(InstanceRepository repository) {
        super(repository);
    }

    /**
     * 实现事件通知
     * @param event 哪一个事件
     * @param instance 发生了什么事
     * @return 这里你想发短信也好,发邮件也罢,单纯的记录也行,都随意了,自己拿到数据,干嘛都行
     */
    protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
        return Mono.fromRunnable(() ->{
            if (event instanceof InstanceStatusChangedEvent) {
                System.out.println(instance.getRegistration().getName()+event.getInstance()+
                        ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());

            } else {
                System.out.println(instance.getRegistration().getName()+event.getInstance()+
                        event.getType());

            }
        });
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:49:43  更:2022-03-31 23:53:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:06:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码