• springcloud(11)-断路器聚合监控


    1.创建子项目turbine

    2.pom.xml

    <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">
      <modelVersion>4.0.0</modelVersion>
      <parent>
        <groupId>com.zhangdemo</groupId>
        <artifactId>springcloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>productServiceTurbine</artifactId>
    
      <dependencies>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
        </dependency>
    
      </dependencies>
    
    </project>
    

    3.ProductServiceTurbineApplication

    @SpringBootApplication
    @EnableTurbine
    public class ProductServiceTurbineApplication {
        public static void main(String[] args) {
            int port = 8021;
            if(!NetUtil.isUsableLocalPort(port)) {
                System.err.printf("端口%d被占用了,无法启动%n", port );
                System.exit(1);
            }
            new SpringApplicationBuilder(ProductServiceTurbineApplication.class).properties("server.port=" + port).run(args);
    
        }
    
    }
    

    4.application.yml

    spring:
      application.name: turbine
    turbine:
      aggregator:
        clusterConfig: default
      appConfig: product-view-service-feign  # 配置Eureka中的serviceId列表,表明监控哪些服务
      clusterNameExpression: new String("default")
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    

    5.AccessViewService

    public class AccessViewService {
    
        public static void main(String[] args) {
    
            while(true) {
                ThreadUtil.sleep(1000);
                access(8012);
                access(8013);
            }
    
        }
    
        public static void access(int port) {
            try {
                String html= HttpUtil.get(String.format("http://127.0.0.1:%d/products",port));
                System.out.printf("%d 地址的视图服务访问成功,返回大小是 %d%n" ,port, html.length());
            }
            catch(Exception e) {
                System.err.printf("%d 地址的视图服务无法访问%n",port);
            }
        }
    }
    

    6.测试

    1.打开http://localhost:8020/hystrix,输入如下内容

    image-20201116151637123

    2.进入到以下页面

    image-20201116151601293
  • 相关阅读:
    [SAM学习笔记]
    CF513G3 Inversions problem
    AtCoder Beginner Contest 204
    [SDOI2017]序列计数
    CF993E Nikita and Order Statistics
    多项式板子
    多项式杂学笔记
    「雅礼集训 2017 Day5」远行
    Mysql备份恢复工具
    个人选择上网的流量方式对比
  • 原文地址:https://www.cnblogs.com/NaoDaiYouDianDa/p/13985431.html
Copyright © 2020-2023  润新知