zoukankan      html  css  js  c++  java
  • springcloud 08 Hystrix图形化DashBoard

    #1.构建一个服务监控模块

    ##1.1创建模块cloud-consumer-hystrix-dashboard9001

    ##1.2pom文件依赖

     <dependencies>
    
    
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web  -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!-- hystrix dashboard-->
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
            </dependency>
    
    
        </dependencies>

    ##1.3yml文件

    server:
      port: 9001

    ##1.4主启动类

    package com.atguigu.springcloud;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.hystrix.EnableHystrix;
    import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
    
    
    @SpringBootApplication
    @EnableHystrixDashboard
    public class HyStrixBoardMain9001 {
        public static void main(String[] args) {
            SpringApplication.run(HyStrixBoardMain9001.class,args);
        }
    
    }

    ##1.5启动

      访问http://localhost:9001/hystrix,看到下图界面,表示搭建成功

      

    #2.被监控的服务配置

      我这里有一个8001端口的服务

    ##2.1加入依赖

     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
     </dependency>

    ##2.2启动类

    需加入

        //此配置是为了服务监控而配置,和服务容错本身无关,是springcloud审计后的坑
        //ServletRegistrationBean因为springboot的默认路径不是/hystrix.stream,需要以下配置
        @Bean
        public ServletRegistrationBean getServlet(){
            HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
            ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
            registrationBean.setLoadOnStartup(1);
            registrationBean.addUrlMappings("/hystrix.stream");
            registrationBean.setName("HystrixMetricsStreamServlet");
            return registrationBean;
        }

    完整

    package com.atguigu.springcloud;
    
    import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.context.annotation.Bean;
    
    @SpringBootApplication
    @EnableEurekaClient  //标识自己是Eureka客户端(也就是一个服务) - 适用于Eureka
    @EnableCircuitBreaker
    public class HystrixPaymentMain8001 {
        public static void main(String[] args) {
            SpringApplication.run(HystrixPaymentMain8001.class,args);
        }
    
        //此配置是为了服务监控而配置,和服务容错本身无关,是springcloud审计后的坑
        //ServletRegistrationBean因为springboot的默认路径不是/hystrix.stream,需要以下配置
        @Bean
        public ServletRegistrationBean getServlet(){
            HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
            ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
            registrationBean.setLoadOnStartup(1);
            registrationBean.addUrlMappings("/hystrix.stream");
            registrationBean.setName("HystrixMetricsStreamServlet");
            return registrationBean;
        }
    
    }

    #3.监控

    ##3.1监控8001服务

      在可视化页面输入 http://localhost:8001/hystrix.stream

     点击 Monitor Stream,刚开始进入发现显示的是Loading。访问8001服务,使它熔断后,才会出现下图

    翻译成中文页面是如下效果

    ##3.2可视化界面说明

      

  • 相关阅读:
    Redis常用数据类型及应用场景之Set
    Redis常用数据类型及应用场景之List
    Redis常用数据类型及应用场景之Hash
    exists & not exists
    oracle 中 dblink 的简单使用
    DockerCompose之数据卷Volume
    DockerCompose之常见编排脚本
    160308-学习State Pattern Actor
    12.3-框架维护
    12.2-机器人协作系统
  • 原文地址:https://www.cnblogs.com/jthr/p/14745603.html
Copyright © 2011-2022 走看看