zoukankan      html  css  js  c++  java
  • 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 的页面了

  • 相关阅读:
    10 个深恶痛绝的 Java 异常。。
    为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
    推荐一款代码神器,代码量至少省一半!
    Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝。。
    hdu 3853 LOOPS(概率 dp 期望)
    hdu 5245 Joyful(期望的计算,好题)
    hdu 4336 Card Collector(期望 dp 状态压缩)
    hdu 4405 Aeroplane chess(概率+dp)
    hdu 5036 Explosion(概率期望+bitset)
    hdu 5033 Building (单调栈 或 暴力枚举 )
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11199612.html
Copyright © 2011-2022 走看看