首页 > 其他分享 >学习记录-Spring Boot Admin 监控应用

学习记录-Spring Boot Admin 监控应用

时间:2023-01-03 20:36:32浏览次数:65  
标签:Admin Spring boot springframework Boot spring

Spring Boot Admin

Spring Boot Actuator 提供了各种端点,Spring Boot Admin 能够将 Actuator 中的信息进行界面化的展示,并提供实时报警功能。

在微服务环境中,使用 Spring Boot Admin,通常包括服务端和客户端,服务端只运行 Spring Boot Admin Server,收集各个客户端的数据,并以可视化界面显示出来。客户端运行 Spring Boot Admin Client,或者通过服务发现与注册获取应用的信息。

 

Admin服务端配置

1.添加依赖

添加spring-boot-admin-starter-server依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.powernode</groupId>
    <artifactId>admin-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>05-admin-server</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-boot-admin.version>2.3.0</spring-boot-admin.version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
    </properties>
    <dependencies>
        <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--Web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!--Admin服务端依赖-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <!--添加依赖管理器-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-dependencies</artifactId>
                <version>${spring-boot-admin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

 

2.开启Admin Server

在启动类 AdminServerApplication 上添加注解 @EnableAdminServer 开启 Spring Boot Admin Server。

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

 

3.修改配置文件

暴露endpoints端点信息

server:
  port: 10086   #端口号范围:0-65535

spring:
  application:
    name: admin-service

eureka:
  client:
    service-url:
      defaultZone: http://xxx.xxx.xxx.xxx:8761/eureka
  instance:
    hostname: localhost
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

management:
  endpoints:
    web:
      exposure:
        include: '*'    #暴露所有的监控端点  如果一个服务需要被监控,那么就要讲自身的一些情况(一些信息接口)暴露出去

端点 Endpoint 是 Actuator 的核心组成部分,用来监视应用程序的各种状态。 Spring Boot Actuator 内置很多 Endpoint,总体上看分成三类:

  • 应用配置类:主要包括配置信息、Spring Bean 的信息、配置文件信息、环境信息等;
  • 度量指标类:应用在运行期间的信息,包括堆栈、健康状态、线程池信息、HTTP请求统计等;
  • 操作控制类:如 shutdown,提供了对应用的关闭等操作类功能。

 

Admin客户端配置

1.添加依赖

添加spring-boot-starter-actuator依赖

<?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">
    <parent>
        <artifactId>04-feign-project</artifactId>
        <groupId>com.powernode</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>user-center</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.powernode</groupId>
            <artifactId>common-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--暴露自身检测端点 endPoints 的一个依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.12.RELEASE</version>
            </plugin>
        </plugins>
    </build>
</project>

 

2.修改配置文件

暴露endpoints端点信息

server:
  port: 8082
  
spring:
  application:
    name: user-service

eureka:
  client:
    service-url:
      defaultZone: http://192.168.105.3:8761/eureka

  instance:
    hostname: localhost
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

feign:
  hystrix:
    enabled: true #启动熔断


management:
  endpoints:
    web:
      exposure:
        include: '*'    #暴露所有的监控端点  如果一个服务需要被监控,那么就要讲自身的一些情况(一些信息接口)暴露出去

 

访问 Admin Server

浏览器访问:http://localhost:10086/applications

可以将项目里的包括源码的映射关系全部展示出来

双击即可快速找到相应接口的位置

这样做有什么好处呢?

一个公司如果经营了很久,会有很多成型的jar工具,比如login-jar等,这样我们开发的时候就可以不用写login登录的相关接口的,只需要添加login相关的依赖调用接口即可。

如果此时我们想看相应源码(比如login)的时候就比较不方便查看。

我们如果使用Admin监控的方式即可快速找到相应接口的位置(不管这个方法在我们的项目中还是在源码中)

 

参考自:https://blog.csdn.net/java1527/article/details/126831544

标签:Admin,Spring,boot,springframework,Boot,spring
From: https://www.cnblogs.com/galo/p/17023284.html

相关文章