springcloud(十三)--断路器聚合监控Turbine.Stream

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jasnet_u/article/details/82177136

如题,本篇我们介绍下hystrix中的断路器聚合监控——Turbine.Stream

Hystrix Turbine是什么?

看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。

搭建sim-turbine服务工程:

1、pom.xml 中引入

<dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-eureka</artifactId>
       </dependency>
        
        <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-turbine</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-netflix-turbine</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-actuator</artifactId>
       </dependency>
        
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>

2、application.yml

server:
  port: 6030
  context-path: /
  
 
spring:

#spring应用名称  、实例id配置
  application:
    name: sim-turbine
   
    
eureka: 
  instance: 
    hostname: localhost  #eureka客户端主机实例名称
    prefer-ip-address: true
  client: 
    service-url: 
      defaultZone: http://localhost:8761/eureka  

security.basic.enabled: false

turbine:
  aggregator:
    clusterConfig: default   # 指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
  appConfig: sim-serviceD,sim-serviceE  ### 配置Eureka中的serviceId列表,表明监控哪些服务
  clusterNameExpression:  new String("default")

3、springboot启动类,标记@EnableTurbine注解

package com.tingcream.simTurbine;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.turbine.EnableTurbine;
@SpringBootApplication
@EnableEurekaClient
@EnableTurbine
public class SimTurbineServer {
     
    public static void main(String[] args) {
        SpringApplication.run(SimTurbineServer.class, args);
    }
 
}

为了避免hi这个断路器方法重名(sim-serviceD、sim-serviceE中都有),我们修改下SimServiceEController.java 

package com.tingcream.simServiceE.controller;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
 
@RestController
public class SimServiceEController {
     
      
    @GetMapping("/")
    public String index() {
        return "你好,我是sim-serviceE服务";
    }
     
  
    @HystrixCommand(fallbackMethod="hi_2_err")
    @GetMapping("/hi_2")
    public String hi_2(String name) {
        System.out.println("SimServiceEController  hi_2-------------");
         
        return "你好 "+name;
    }
     
    public String hi_2_err(String name) {
        return "sim-serviceE hi_2_err : 抱歉,服务器连接失败,请稍候重试! ";
    }
}

依次启动sim-eureka 、sim-turbine、sim-serviceE、sim-serviceD

访问http://localhost:6006/hystrix 

添加地址http://localhost:6030/turbine.stream ,title: sim-turbine  ,开始监控

猜你喜欢

转载自blog.csdn.net/jasnet_u/article/details/82177136