史上最简单的SpringCloud教程 | 第十三篇: 断路器聚合监控(Hystrix Turbine)

4人阅读 评论(0) 收藏 举报
分类:

转载请标明出处: 
http://blog.csdn.net/forezp/article/details/70233227 
本文出自方志朋的博客

上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所有服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个组件了,即Hystrix Turbine。

一、Hystrix Turbine简介

看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要引入相应的依赖和加上注解和配置就可以了。

二、准备工作

本文使用的工程为上一篇文章的工程,在此基础上进行改造。因为我们需要多个服务的Dashboard,所以需要再建一个服务,取名为service-lucy,它的基本配置同service-hi,具体见源码,在这里就不详细说明。

三、创建service-turbine

引入相应的依赖:

    <dependencies>
        <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>
    </dependencies>

在其入口类ServiceTurbineApplication加上注解@EnableTurbine,开启turbine,@EnableTurbine注解包含了@EnableDiscoveryClient注解,即开启了注册服务。

@SpringBootApplication
@EnableTurbine
public class ServiceTurbineApplication {

    public static void main(String[] args) {
            new SpringApplicationBuilder(ServiceTurbineApplication.class).web(true).run(args);
    }
}

配置文件application.yml:

spring:
  application.name: service-turbine
server:
  port: 8769
security.basic.enabled: false
turbine:
  aggregator:
    clusterConfig: default   # 指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
  appConfig: service-hi,service-lucy  ### 配置Eureka中的serviceId列表,表明监控哪些服务
  clusterNameExpression: new String("default")
  # 1. clusterNameExpression指定集群名称,默认表达式appName;此时:turbine.aggregator.clusterConfig需要配置想要监控的应用名称
  # 2. 当clusterNameExpression: default时,turbine.aggregator.clusterConfig可以不写,因为默认就是default
  # 3. 当clusterNameExpression: metadata['cluster']时,假设想要监控的应用配置了eureka.instance.metadata-map.cluster: ABC,则需要配置,同时turbine.aggregator.clusterConfig: ABC
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

配置文件注解写的很清楚。

四、Turbine演示

依次开启eureka-server、service-hi、service-lucy、service-turbine工程。

打开浏览器输入:http://localhost:8769/turbine.stream,界面如下:

这里写图片描述

依次请求:

http://localhost:8762/hi?name=forezp

http://localhost:8763/hi?name=forezp

打开:http://localhost:8763/hystrix,输入监控流http://localhost:8769/turbine.stream

这里写图片描述

点击monitor stream 进入页面:

这里写图片描述

可以看到这个页面聚合了2个service的hystrix dashbord数据。

源码下载: 
https://github.com/forezp/SpringCloudLearning/tree/master/chapter13

五、参考文献

hystrix_dashboard

turbine

优秀文章推荐:

查看评论

SpringCloud之断路器聚合监控Spring Cloud Hystrix Turbine实例

一、简介 监控端点/turbine.stream是对集群使用的。从端点的命名中,可猜测到这里我们将引入Turbine, 通过它来汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard...
  • smartdt
  • smartdt
  • 2018-01-11 13:24:29
  • 119

史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务又必须集群部署。由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务...
  • forezp
  • forezp
  • 2017-04-09 21:14:05
  • 222527

Turbine Training

http://blog.csdn.net/fitzwilliam/archive/2006/10/31/1358991.aspx 
  • shooray
  • shooray
  • 2006-11-02 14:12:00
  • 622

Spring Cloud——断路器监控Hystrix Dashboard&Turbine

在前文谈论过,服务客户端的负载均衡中,为了保证高可用的特性,我们使用了断路器Hystrix。 回顾一下,Hystrix做了什么事情呢? 在标注了HystrixCommand注解的方法中,如果该方法执行...
  • a60782885
  • a60782885
  • 2017-04-15 19:05:09
  • 3392

springCloud学习02之断路器Hystrix-turbine监控-ribbo/feign对Hystrix的支持

随着Docker的推进,微服务越来越热了.在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用。为了保证其高可用,单个服务又必须集群部署。由于网络原因或者自身的原因,服务并不能保证...
  • dream_broken
  • dream_broken
  • 2017-08-03 17:39:14
  • 1221

spring cloud 的监控turbine-rabbitmq

前提是你已经有了注册中心,然后搭建一个基础spring cloud 服务,并配置注册服务等等前提环境搭建接下来描述的服务提供者和服务调用者的配置都是一样的,来自《spring cloud 与 dock...
  • qq_33547169
  • qq_33547169
  • 2018-01-03 15:18:52
  • 337

Spring Cloud构建微服务架构:Hystrix监控数据聚合

上一篇我们介绍了使用Hystrix Dashboard来展示Hystrix用于熔断的各项度量指标。通过Hystrix Dashboard,我们可以方便的查看服务实例的综合情况,比如:服务调用次数、服务...
  • qq_36318234
  • qq_36318234
  • 2017-09-13 08:43:40
  • 150

Spring基础:快速入门spring cloud(5):断路器之Hystrix

Spring Cloud是Spring总多的Project中的一个,它提供了一整套的工具帮助系统架构师们在进行分布式设计的时候可以拿来即用, 在创建和发布微服务时极为便捷和有效。本系列文章将会使用最简...
  • liumiaocn
  • liumiaocn
  • 2017-01-04 08:00:56
  • 7273

spring cloud: Hystrix断路器(熔断器)

1.Hystrix客户端Netflix已经创建了一个名为Hystrix的库,实现了断路器的模式。在microservice架构通常有多个层的服务调用。 低水平的服务的服务失败会导致级联故障一直给到用...
  • zhuchuangang
  • zhuchuangang
  • 2016-05-01 10:06:31
  • 25216

Spring Cloud(五)断路器监控(Hystrix Dashboard)

在上两篇文章中讲了,服务提供者 Eureka + 服务消费者 Feign,服务提供者 Eureka + 服务消费者(rest + Ribbon),本篇文章结合,上两篇文章中代码进行修改加入 断路器监控...
  • u012889902
  • u012889902
  • 2017-12-08 01:18:14
  • 390
    个人资料
    等级:
    访问量: 902
    积分: 164
    排名: 104万+
    文章存档