`
234390216
  • 浏览: 10197330 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:461019
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1772134
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1395785
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394006
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:678363
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:529417
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1178996
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:462567
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150282
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:66976
社区版块
存档分类
最新评论

Spring Cloud(07)——Hystrix Dashboard

阅读更多

Hystrix Dashboard

Spring Cloud也基于Spring Boot的监控规范提供了Hystrix的指标监控信息。为了看到这些监控信息,首先需要在pom.xml中添加如下依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Spring Cloud提供的Hystrix监控信息的endpoint ID是hystrix.stream,为了看到对应的监控信息,还需要把Hystrix对应的endpoint以http的方式发布出来。可以以下面的方式明确的指定需要发布hystrix.stream

management.endpoints.web.exposure.include=hystrix.stream

也可以直接指定发布所有的endpoint。

management.endpoints.web.exposure.include=*

发布了hystrix.stream后,跟其它endpoint一样,可以通过/actuator/endpointId获取对应endpoint发布的信息,所以可以通过/actuator/hystrix.stream访问到Hystrix发布的监控信息,此时可以看到类似如下这样的信息。

hystrix.stream

你也可能看到界面上一直显示的是ping:,这是因为应用刚启动,还没有对@HystrixCommand标注的方法发起请求,还没有产生对应的信息。

hystrix.stream直接看到的是JSON格式的数据,不直观。Hystrix有对应的图形监控界面,Spring Cloud也实现了对其的整合。使用图形监控界面需要在pom.xml中添加如下依赖。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>

然后在配置类上加上@EnableHystrixDashboard以启用对dashboard的支持。

@SpringBootApplication
@EnableHystrixDashboard
@EnableCircuitBreaker
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

之后可以通过/hystrix访问到监控界面的首页,你会看到如下界面。

Hystrix Dashboard

如上图红色标记部分所示,单机版访问的收集监控信息的地址是http://hystrix-app:port/actuator/hystrix.stream格式,笔者的应用部署在本机的8900端口,所以笔者收集监控信息的地址是http://localhost:8900/actuator/hystrix.stream,把它填入到第一个输入框,然后点击按钮Monitor Stream开始监控,你会看到类似如下界面。

Hystrix Dashboard Monitor

在这个监控页面中可以看到各@HystrixCommand对应的断路器的状态,各请求的耗时情况,失败率,以及对应的线程池的状态等。

 

turbine

hystrix.stream只能看到单个应用的监控信息。通常同一个服务会部署多份,使用hystrix.stream查看每个单个应用的情况会比较麻烦,也不利于分析。Netflix提供了一个可以聚合多个应用的监控信息的工具,叫turbine。使用turbine时,一般会独立一个工程,在pom.xml中添加如下依赖。

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

turbine在聚合多个应用实例的监控信息是通过Eureka进行实例发现的,所以它本身将作为一个Eureka Client,还需要往pom.xml中添加Eureka Client的依赖。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

使用turbine的工程的配置类上需要加上@EnableHystrixDashboard启用Hystrix Dashboard,加上@EnableTurbine启用turbine支持。而此时被聚合的应用可以不再启用Hystrix Dashboard。

@SpringBootApplication
@EnableHystrixDashboard
@EnableTurbine
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

使用turbine还需要进行一些配置,如下配置指定了Eureka Server的地址,且当前应用不需要向Eureka Server进行注册。turbine.appConfig指定了需要聚合的应用,对应于向Eureka Server注册的serviceId,即spring.application.name指定的值,下面的配置指定的需要聚合的服务是spring1。turbine.aggregator.clusterConfig指定了集群的名称,集群的名称只是用来把turbine.appConfig配置的服务名称分个组,默认是服务名称的大写形式,所以我们这里配置为SPRING1。

eureka.client.serviceUrl.defaultZone=http://localhost:8089/eureka/
eureka.client.registerWithEureka=false
server.port=9000

turbine.appConfig=spring1
turbine.aggregator.clusterConfig=SPRING1

turbine.appConfigturbine.aggregator.clusterConfig需要指定成一样的。

服务启动后,就可以通过/turbine.stream?cluster=SPRING1访问到类似如下这样收集到的群集SPRING1的信息。

turbine stream

hystrix.stream一样,上面收集到的信息是JSON格式,不直观。我们也可以在Hystrix Dashboard中查看对应的图形界面信息。通过访问/hystrix进入Hystrix Dashboard的首页,在输入监控地址的位置输入http://localhost:9000/turbine.stream?cluster=SPRING1,然后点击Monitor Stream按钮进入监控页面,你会看到类似如下这样的界面。

turbine stream dashboard

turbine也可以同时监控多个不同的服务,监控多个不同的服务时,多个不同的服务之间以英文的逗号分隔,集群名称之间也是以英文逗号分隔。比如下面的配置,可以通过集群SPRING1监控服务spring1的相关信息,通过集群SPRING2监控服务spring2的相关信息。

turbine.appConfig=spring1,spring2
turbine.aggregator.clusterConfig=SPRING1,SPRING2

当一个turbine中同时指定了多个集群信息时,可以通过/clusters查看定义好的集群信息。基于上面的配置信息访问http://localhost:9000/clusters可以看到如下信息。

cluster info

当使用的集群名称是default时,访问turbine.stream可以不指定cluster。可以通过下面的配置指定cluster名称为default。下面的配置相当于指定了服务spring1和spring2的集群名称都是default,在监控的时候可以同时监控这两个服务的相关信息。

turbine.appConfig=spring1,spring2
turbine.clusterNameExpression="default"

如果是基于YAML配置,需要指定turbine.clusterNameExpression的值为"'default'"

(注:本文是基于Spring cloud Finchley.SR1所写)

0
0
分享到:
评论

相关推荐

    spring cloud hystrix &&dashboard源码解读

    spring cloud hystrix &&dashboard源码解读

    spring-cloud-hystrix-dashboard(包含注册中心、member、hystrix-dashboard配置等).zip

    spring-cloud-hystrix-dashboard(包含注册中心、member、hystrix-dashboard配置等).zip 包含配置好的eureka注册中心,member服务生产者、hystrix-dashboard的hystrix配置和仪表盘配置

    spring-cloud-netflix-hystrix-dashboard-2.2.3.RELEASE.jar

    spring-cloud-netflix-hystrix-dashboard-2.2.3.RELEASE.jar

    springcloud 熔断监控Hystrix Dashboard和Turbine

    主要介绍了springcloud 熔断监控Hystrix Dashboard和Turbine,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    SpringCloud10-2 Hystrix整合Dashboard教程

    SpringCloud10-2 Hystrix整合Dashboard教程

    Spring Cloud.docx

    Spring Cloud(五)断路器监控(Hystrix Dashboard) spring-cloud-zuul Spring Cloud(六)服务网关 zuul 快速入门 spring-cloud-zuul-filter Spring Cloud(七)服务网关 Zuul Filter 使用 spring-...

    尚硅谷SpringCloud视频(最新)

    课程中对比了 Dubbo 和 SpringCloud,并深入讲授SpringCloud核心组件Eureka、Ribbon、Feign、Hystrix、HystrixDashboard、Zuul、Config。除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于Spring...

    SpringCloud之熔断监控Hystrix Dashboard的实现

    主要介绍了SpringCloud之熔断监控Hystrix Dashboard的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    springcloud教程源码 springcloud demo

    课程中对比了 Dubbo 和 SpringCloud,并深入讲授SpringCloud核心组件Eureka、Ribbon、Feign、Hystrix、HystrixDashboard、Zuul、Config。除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于Spring...

    hystrix-dashboard-1.5.9.war

    springcloud hystrix-dashboard

    Spring Cloud 各组件Demo

    Spring Cloud 各组件Demo ,包含 Spring Cloud Eureka ,Spring Cloud Zuul , Spring Cloud Ribbon , Hystrix-Dashboard-Turbine 如有错误 ,请于本人联系 ,自会及时修改 , 防止误导他人

    想学习的看过来了spring4.0、springboot、springcloud详细视频课程(硅谷)

    43.硅谷学习_SpringCloud_如何查看hystrixDashboard 44.硅谷学习_SpringCloud_Zuul是什么 45.硅谷学习_SpringCloud_Zuul路由基本配置 46.硅谷学习_SpringCloud_Zuul路由访问映射规则 47.硅谷学习_SpringCloud_...

    springcloud微服务框架+服务模版

    spring-cloud-hystrix:Hystrix熔断的使用示例 hystrix-dashboard-turbine:熔断监控Hystrix Dashboard和Turbine的示例 spring-cloud-config-git:配置中心git版本示例 spring-cloud-config-svn-refresh:配置中心...

    尚硅谷SpringCloud视频

    课程中对比了 Dubbo 和 SpringCloud,并深入讲授SpringCloud核心组件Eureka、Ribbon、Feign、Hystrix、HystrixDashboard、Zuul、Config。除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于Spring...

    尚硅谷SpringCloud视频 + 源码 百度网盘

    课程中对比了 Dubbo 和 SpringCloud,并深入讲授SpringCloud核心组件Eureka、Ribbon、Feign、Hystrix、HystrixDashboard、Zuul、Config。除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于Spring...

    2018最新SpringCloud视频教程

    课程中对比了 Dubbo 和 SpringCloud,并深入讲授SpringCloud核心组件Eureka、Ribbon、Feign、Hystrix、HystrixDashboard、Zuul、Config。除此之外,还通过整合SpringMVC+SpringBoot+Mybatis构建一个可用的基于Spring...

    尚硅谷Java视频教程_SpringCloud视频教程

    43.尚硅谷_SpringCloud_如何查看hystrixDashboard 44.尚硅谷_SpringCloud_Zuul是什么 45.尚硅谷_SpringCloud_Zuul路由基本配置 46.尚硅谷_SpringCloud_Zuul路由访问映射规则 47.尚硅谷_SpringCloud_Config分布式...

    springCloud项目练习

    第二课: 服务消费者(rest+ribbon) 第三课: 服务消费者(Feign) 第四课: 断路器(Hystrix... 第十二课: 断路器监控(Hystrix Dashboard) 第十三课: 断路器聚合监控(Hystrix Turbine) 第十四课: 服务注册(consul)

    SpringCloud -Hystrix监控面板及数据聚合(Turbine)介绍与使用示例

    SpringCloud -Hystrix监控面板及数据聚合(Turbine)介绍与使用示例 今天我们就将讲解下Hystrix Dashboard和Turbine.其中Hystrix Dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观...

Global site tag (gtag.js) - Google Analytics