轻量级微服务监控方案:Spring Boot Admin+Cloud+Nacos

2025-04-10 126 0

介绍

在当今复杂的分布式系统架构中,高效的监控至关重要。Spring Boot Admin、Spring Cloud 与 Nacos 强强联合,可快速为我们项目带来轻量级的可视化监控的理想方案。本文将详细剖析这三者的集成要点与实践细节,助您构建稳固且可控的微服务体系 。

项目结构

spring-cloud-admin-demo
├── spring-cloud-admin-server
└── spring-cloud-admin-client

示例代码地址:https://gitee.com/hushow/learning-demo/tree/master/spring-cloud-admin-demo

Spring cloud Admin Server 配置

1. 创建 spring-cloud-admin-server 项目

pom.xml 中添加依赖:

<dependencies>
    <!-- Spring Boot Admin Server -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.3.1</version>
    </dependency>
    <!-- Spring Cloud Starter Alibaba Nacos Discovery -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>
    <!-- Spring Cloud Starter -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>
</dependencies>

2. 配置 application.yml

server:
  port: 8081

spring:
  application:
    name: spring-boot-admin-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

3. 启用 Spring Boot Admin Server

在主应用类上添加 @EnableAdminServer 注解:

package com.hushow.demo;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Slf4j
@EnableAdminServer
@SpringBootApplication(scanBasePackages = {"com.hushow.demo.**"})
public class AdminUiApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminUiApplication.class, args);
    }

}

Spring Boot Admin Client 配置

1. 创建 spring-cloud-admin-client 项目

pom.xml 中添加依赖:

<dependencies>
    <!-- Spring Boot Admin Client -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.3.1</version>
    </dependency>
    <!-- Spring Cloud Starter Alibaba Nacos Discovery -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>
    <!-- Spring Cloud Starter -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
        <version>2.2.6.RELEASE</version>
    </dependency>
    <!-- Spring Boot Actuator -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

2. 配置 application.yml

server:
  port: 8082

spring:
  application:
    name: spring-cloud-admin-client
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

#通过nacos发现,不需要指标admin注册中心了
#spring.boot.admin.client.url: http://localhost:8080

3. 创建主应用类

package com.hushow.demo;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Slf4j
@SpringBootApplication(scanBasePackages = {"com.hushow.demo.**"})
public class AdminClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminClientApplication.class, args);
    }

}

运行步骤

  1. 启动 Nacos 服务,确保其运行在 http://localhost:8848
  2. 启动 spring-cloud-admin--server 项目。
  3. 启动 spring-cloud-admin-client 项目。

监控效果

启动成功后,访问 http://localhost:8081 即可看到 Spring Boot Admin Server 的管理界面,其中会显示已注册的客户端应用,效果如下:

file

file

相关文章

PF4J ExtensionPoint核心原理与实战示例
当Actuator失效时:Tomcat线程池监控的全面解决方案
快速实现通用的办公文档在线预览方案
Spring Feign大文件上传踩坑记
MinIO分布式存储方案预研
Dubbo+Grpc+Spring Boot初体验

发布评论