版权声明:本文为博主原创文章,未经博主允许不得转载。 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 ,开始监控