• SpringBoot 监控中心


    1,SpringBoot 监控中心:

          针对微服务服务监控,服务器内存内存变化(对内存,线程,日志管理),检测服务配置连接地址是否可用(模拟访问,懒加载),故意将mysql 数据源连接密码写错,启动就会报错 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

         统计有多少bean(Spring 容器的bean),统计SpringMVC 的@requestMapping(Http 接口),

         Actuator监控应用(没有界面,返回json格式)

         AdminUi,底层使用的就是Actuator监控应用,实现可视化的界面

         应用场景:生产环境

    2,为什么要使用SpringBoot 监控中心

    Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况.特别对于微服务管理十分有意义.缺点:没有可视化界面。

    3,Actuator 的使用

        step1: 添加actuator 的依赖

            <!-- Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。
            可以使用HTTP的各种请求来监管,审计,收集应用的运行情况.特别对于微服务管理十分有意义.缺点:没有可视化界面。 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

         step2: 配置application.yml

    #通过下面的配置启用所有的监控端点,默认情况下,这些端点是禁用的;
    management:
      endpoints:
        web:
          exposure:
            include: "*"
    
    #单数据源
    spring:
      profiles:
        active: prod
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/testdb
        username: root
        password: 123456
        driver-class-name: com.mysql.jdbc.Driver

    4,访问地址:

    路径 作用
    /actuator/beans    显示应用程序中所有Spring bean的完整列表。
    /actuator/configprops    显示所有配置信息。
    /actuator/env    陈列所有的环境变量。
    /actuator/mappings    显示所有@RequestMapping的url整理列表。
    /actuator/health    显示应用程序运行状况信息 up表示成功 down失败
    /actuator/info    查看自定义应用信息

    Admin-Ui 分布式微服务监控中心

    相当于启动两个服务,一个是Admin-Ui 的server,另一个是Admin-Ui需要监视的Server (可以称做Client)

    1,server 的maven 依赖

        <dependencies>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>2.0.0</version>
            </dependency>

    <!--admin-ui的主要配置-->
    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!-- Spring Boot Actuator对外暴露应用的监控信息,Jolokia提供使用HTTP接口获取JSON格式 的数据 --> <dependency> <groupId>org.jolokia</groupId> <artifactId>jolokia-core</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency> </dependencies>

    2,server 的配置文件:

    spring:
      application:
        name: spring-boot-admin-server

    3,server 的启动类:

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

    4,被监控的服务(client)的配置maven 依赖

    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
        </parent>
        <dependencies>
          <!--admin-ui的主要配置-->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.jolokia</groupId>
                <artifactId>jolokia-core</artifactId>
            </dependency>

    <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

    5,被监控的服务(client)的配置文件,本身定义了server 是8081,监控自己的server(对本server 来说是client 8080)

    spring:
      boot:
        admin:
          client:
            url: http://localhost:8080
    server: 
      port: 8081
      
    management:
      endpoints:
        web:
          exposure:
            include: "*"
      endpoint:
        health:
          show-details: ALWAYS

    6,启动类

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

    两个服务都启动之后,登陆8080 端口,就看到admin-ui 的页面了

  • 相关阅读:
    团队作业第五次——Alpha冲刺
    Alpha冲刺——总结
    冲刺随笔
    冲刺随笔——Day_Nine
    冲刺随笔——Day_Eight
    冲刺随笔——Day_Seven
    冲刺随笔——Day_Three
    团队作业第五次——Alpha冲刺
    第06组 Alpha冲刺(1/6)
    第06组 团队Git现场编程实战
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11199612.html
Copyright © 2020-2023  润新知