SpringCloud Turbine

前提:SpringCloud解决方案下,存在一个EurekaServer项目,外加两个子项目,并在一个项目中使用hystrix方法调用另外一个项目中的接口

我这里有三个子项目分别为:eureka,gateway,user


创建子项目turbine,pom.xml中加入依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>

application.yml中加入配置:

turbine:
  aggregator:
    clusterConfig: default # 指定聚合哪些集群,多个使用","分割,默认为default
  appConfig: user,gateway,blog  # 配置Eureka中的serviceId列表,表明监控哪些服务
  clusterNameExpression: new String("default")

启动类:

@SpringBootApplication
@EnableTurbine
@EnableHystrixDashboard
public class TurbineApplication {
    public static void main(String[] args) {
        SpringApplication.run(TurbineApplication.class, args);
    }
}

启动turbine项目,浏览器输入:http://localhost:9997/hystrix,这里9997是我配置文件的端口号


输入http://localhost:9997/turbine.stream,点击"Monitor Stream",进入监控页面,调用子项目中带有hystrix断路器的接口,就可以看到监控图了
我这里在gateway中使用RestTemplate调用了user中的hi接口,调用代码如下:

@Autowired
RestTemplate restTemplate;

@HystrixCommand(fallbackMethod = "hystrixMsg")
public Result hiUser() {
    // return restTemplate.getForObject("http://user-manage/user/hi", Result.class);
    // getForObject 无法序列化返回结果为制定的类型
    Result result = restTemplate
        .exchange("http://user/user/hi", HttpMethod.GET, null, new ParameterizedTypeReference<Result>() {})
        .getBody();
    return result;
}

public Result hystrixMsg() {
    return new Result("该服务已断开连接!");
}

在浏览器中不停调用gateway的hiUser接口,在user项目启动并能成功调用的时候,监控图如下:


断掉user项目,再次不停调用gatew的hiUser接口,监控图如下:


可以看到红色的百分比数字100%表示全部调用失败了,同时浏览器显示了断路函数中返回的信息


监控图中各项数字的含义,在网上找了张图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值