SpringBoot依赖之Spring Boot Admin(一)

发布于:2024-09-18 ⋅ 阅读:(127) ⋅ 点赞:(0)

作者语录:

我们一直在追逐需求和迭代的路上,却不曾回头看自己曾经的作品是否给自己留下经验和遗憾。技术永远没有边界,但个人必须对自己过往的行为买单,无论对与错,终究是个做个复盘。我们一直在被降本增效,我们自己也要考虑增效降本,技术人如何增效,简言之,就是释放自己成就他人。 释放自己,就需要“别人”替你去做事,无论是监控亦或是AI 还有可能是替身,最终的目的都是为了释放自己。何为成就他人?你把事做好了,他人就舒服了。那么现在作为开发者,你也可以去着手自己做独立的事情了-创业or do sth。

Spring Boot 集成 Spring Boot Admin(一)

我们会分几期进行拆分讲解,因为其中的高阶功能和扩展相对知识点很多,安全认证邮件/短信通知监控日志图表分析,结合普罗米修斯 Prometheus和Grafana实现可视化智能服务监控等等。

下面将重新整理 Spring Boot 项目集成 Spring Boot Admin 的简单完整步骤。


1. Spring Boot Admin Server 项目

1.1 创建 Spring Boot Admin Server 项目
  1. 打开 IntelliJ IDEA,新建一个 Spring Boot 项目。
  2. 选择依赖:
    • Spring Web
    • Spring Boot Admin Server
1.2 添加依赖

pom.xml 中添加 Spring Boot Admin Server 的依赖:

<dependencies>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>3.3.3</version> <!-- 版本根据 Spring Boot 的版本选择 -->
    </dependency>
</dependencies>
build.gradle 文件
dependencies {
    implementation 'de.codecentric:spring-boot-admin-starter-server:3.3.3'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
1.3 主类文件

在主类上加上 @EnableAdminServer 注解以启用 Admin Server。

package com.depencencies.springbootadmin;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAdminServer
public class SpringBootAdminApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminApplication.class, args);
    }
    
}
1.4 配置文件 application.properties

src/main/resources/application.properties 中,添加如下配置:

spring.application.name=spring-boot-admin

server.port=9091

application.yml 中配置基本的 Spring Boot Admin Server 信息。

application.yml
server:
  port: 9091

spring:
  application:
    name: spring-boot-admin

2. Spring Boot Admin Client 项目

2.1 创建 Spring Boot Admin Client 项目
  1. 新建另一个 Spring Boot 项目作为 Client,选择依赖:
    • Spring Web
    • Spring Boot Admin Client
2.2 添加依赖

pom.xml 中添加 Spring Boot Admin Client 的依赖:

<dependencies>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>3.3.3</version> <!-- 版本根据 Spring Boot 的版本选择 -->
    </dependency>
</dependencies>
修改 build.gradle
dependencies {
    implementation 'de.codecentric:spring-boot-admin-starter-client:3.3.3'
}
2.3 配置文件 application.properties

src/main/resources/application.properties 中,配置客户端注册到 Admin Server:

spring.application.name=spring-boot-admin-client

server.port=8081


# Spring Boot Admin Client 配置
spring.boot.admin.client.url=http://localhost:9091
spring.boot.admin.client.instance.service-base-url=http://localhost:8081/

同理如果你使用的是.yml,在 Spring Boot 应用的 application.yml 中,配置 Spring Boot Admin Client,这里不再赘述,有需要可以交流。

2.4 编写简单的 Controller

为确保客户端功能正常,可以创建一个简单的 RestController

package com.depencencies.springbootadminclient.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author zhizhou   2024/9/5 10:16
 */
@RestController
public class HelloController {
    
    @GetMapping("/hello")
    public String hello() {
        return "Hello from Client 1!";
    }
}

2.5 主类文件

客户端应用的主类,这些主类一般IDEA生成项目的同时会自动创建,所以一般无需过多关注:

package com.depencencies.springbootadminclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

3. 启动和测试

3.1 启动步骤
  1. 启动 Admin Server 项目(端口 9091)。
  2. 启动 Admin Client 项目(端口 8081)。
3.2 访问 Spring Boot Admin Server

打开浏览器,访问 http://localhost:9091,可以看到在 Admin UI 界面中,spring-boot-admin-client 已注册到 Server 上。

3.3 测试客户端接口

访问客户端接口,确保应用正常运行:

http://localhost:8081/hello

你应该会看到返回 "Hello from Client 1!"


4. 使用示例

查看监控页面
  • 打开浏览器,访问 http://localhost:9091,即可看到 Spring Boot Admin 的 UI 界面。
  • 注册的 Spring Boot 应用(Client)会出现在界面中,你可以点击某个应用,查看该应用的健康状态、日志、环境变量、JVM 指标等。
示例截图

为了测试监控多服务的状态,我创建了3个client注册到server上,其中client3图中的状态不健康,因为它在启动中,尚未启动完成,可以实现服务状态监控。

  • 主界面:如图
    在这里插入图片描述
    • 应用监控页面:在这里插入图片描述
      服务性能指标:(这块后期会做特定章节进行讲解分享,对于研发后期实现智能监控做铺垫)
      在这里插入图片描述
      日志报表:
      在这里插入图片描述

5. 总结

我们实现了实时监控多个 Spring Boot 应用的运行状况,并获取详细的应用指标,成功实现对客户端应用的监控和管理。
另外因为其中的高阶功能和扩展相对知识点很多,我们会分几期进行拆分讲解,安全认证邮件/短信通知监控日志图表分析,结合普罗米修斯 Prometheus和Grafana实现可视化智能服务监控等等。


网站公告

今日签到

点亮在社区的每一天
去签到