一、使用Turbine聚合监控数据

使用/hystrix.stream端点监控单个微服务实例。然而,使用微服务架构的应用系统一般会包含若干微服务,每个微服务通常都会部署多个实例。如果每次只能查看单个实例的监控数据,就必须在Hystrix Dashboard上切换想要监控的地址,这显然很不方便。如何解决该问题呢?

Turbine是一个聚合Hystrix监控数据的工具,它可将所有相关/hystrix.stream端点的数据聚合到一个组合的/turbine.stream中,从而让集群的监控更加方便。

这里我们使用Turbine监控2个微服务(也可监控更多)。

1、创建项目hystrix-turbine

pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.springclouddemo</groupId><artifactId>hystrix-turbine</artifactId><version>0.0.1-SNAPSHOT</version><name>hystrix-turbine</name><description>turbine监控微服务</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><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><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><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2、编写application配置文件

server.port=7300
spring.application.name=hystrix-turbine
eureka.client.service-url.defaultZone=http://localhost:7000/eureka/
eureka.instance.prefer-ip-address=trueturbine.app-config=eureka-client-consumer-hystrix,eureka-client-consumer-feign-fallback-stream
turbine.clusterNameExpression= new String("default")
turbine.aggregator.cluster-config=default
turbine.combine-host-port=true
turbine.instanceUrlSuffix=/hystrix.stream
  • turbine.app-config 配置监控服务的列表,表明监控哪些服务多个使用","分割;Turbine会在Eureka Server中找到eureka-client-consumer-hystrix,eureka-client-consumer-feign-fallback-stream这两个微服务,并聚合这两个微服务的监控数据
  • turbine.clusterNameExpression 用于指定集群名称,当服务数量非常多的时候,可以启动多个Turbine服务来构建不同的聚合集群,而该参数可以用来区分这些不同的聚合集群,同时该参数值可以再Hystrix仪表盘中用来定位不同的聚合集群
  • turbine.aggregator.cluster-config 指定聚合哪些集群,多个使用","分割,默认为default
  • turbine.combine-host-port 参数设置为true,可以让同一主机上的服务通过主机名与端口号的组合来进行区分,默认情况下会以host来区分不同的服务,这会使得在本机调试的时候,本机上的不同服务聚合成一个服务来统计。
  • turbine.instanceUrlSuffix 设置turbine 监控的默认路径

3、在main类添加@EnableTurbine注解

package com.springclouddemo.hystrixturbine;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;/*** @author 何昌杰*/
@EnableEurekaClient
@EnableHystrixDashboard
@EnableTurbine
@SpringBootApplication
public class HystrixTurbineApplication {public static void main(String[] args) {SpringApplication.run(HystrixTurbineApplication.class, args);}
}
  • @EnableHystrixDashboard 开启Hystrix仪表盘
  • @EnableTurbine 开启Turbine 聚合监控

测试:

  1. 启动项目eureka-server、eureka-client-provider、hystrix-turbine、eureka-client-consumer-hystrix、eureka-client-consumer-feign-fallback-stream
  2. 分别访问http://localhost:7206/hello/hcj、http://localhost:7209/hello/hcj
  3. 访问http://localhost:7300/hystrix,将http://localhost:7300/hystrix.stream添加监控,即可查看到聚合后的监控指标

使用Turbine聚合监控数据相关推荐

  1. SpringCloud系列七:Hystrix 熔断机制(Hystrix基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)...

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Hystrix 熔断机制 2.具体内容 所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝 ...

  2. SpringCloud:Hystrix 熔断机制(基本配置、服务降级、HystrixDashboard服务监控、Turbine聚合监控)

    所谓的熔断机制和日常生活中见到电路保险丝是非常相似的,当出现了问题之后,保险丝会自动烧断,以保护我们的电器, 那么如果换到了程序之中呢?当现在服务的提供方出现了问题之后整个的程序将出现错误的信息显示, ...

  3. 使用Turbine聚合监控

    Turbine概述 Turbine真正做的,就是将每一个(指定)服务的Hystrix/stream中的状态信息取出,并集中处理(计算与展示),应该说,它是具有自己独立的调度的,服务(实例)发现,服务连 ...

  4. Hystrix Turbine聚合监控

    之前,我们针对的是一个微服务实例的Hystrix数据查询分析,在微服务架构下,一个微服务的实例往往是多个(集群化). 比如自动投递微服务 实例1(hystrix) ip1:port1/actuator ...

  5. 使用 Turbine 聚合监控

    在使用 Hystrix Dashboard 组件监控服务的熔断状况时,每个服务都有一个 Hystrix Dashboard 主页,当服务数量很多时相当不方便.为了同时监控多个服务的熔断器的状态,可以使 ...

  6. SpringCloud配置之:Turbine聚合监控

    Turbine聚合监控 一.搭建监控模块 1. 创建监控模块 创建hystrix-monitor模块,使用Turbine聚合监控多个Hystrix dashboard功能, 2. 引入Turbine聚 ...

  7. Turbine聚合监控

    Turbine聚合监控 一.搭建监控模块 1. 创建监控模块 创建hystrix-monitor模块,使用Turbine聚合监控多个Hystrix dashboard功能, 2. 引入Turbine聚 ...

  8. Spring Cloud构建微服务架构:Hystrix监控数据聚合【Dalston版】

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

  9. Spring Cloud架构教程 (二)Hystrix监控数据聚合

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

最新文章

  1. HJ0427分隔输出
  2. Web性能API——帮你分析Web前端性能
  3. PE学习(三)第三章:PE文件头
  4. Activiti Modeler发布以及教程
  5. 从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...
  6. Android之javax.net.ssl.SSLPeerUnverifiedException: Hostname ip not verified:解决办法
  7. 创建线程都有哪些方式?— Callable篇
  8. atoi函数_C语言字符串、数字转换函数大全!
  9. -42%!新能源补贴退坡后 比亚迪2019年利润几乎砍半
  10. 小型微型计算机系统2006,小型微型计算机系统杂志
  11. CCF虚拟现实与可视化技术专委会丨面向增强现实的可视计算技术研究进展概述
  12. Word页面中底端如何画一条横线,再下端写文字?
  13. size_t和size_type
  14. hive基本用法及细节记录
  15. c# emgucv 切图_自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)...
  16. Spark数据挖掘实例1:基于 Audioscrobbler 数据集音乐推荐
  17. aix查看lv_AIX中的硬盘、PP、VG、LV、文件系统
  18. 问题 Q:巧克力与小花梨
  19. 折叠目录html,在WEB页中实现折叠式动态目录结构
  20. ffplay源码分析

热门文章

  1. 非会员非太阳免费更换任何QQ头像
  2. 【保姆级】论文阅读与分析《Learning Heterogeneous Knowledge Base Embeddings for Explainable Recommendation》
  3. 发现现象:安卓中使用File.getCanonicalPath和File.getAbsolutePath根路径出现差异
  4. 罗杰软工第三次作业——结对编程
  5. java流程图没有汉字_activiti部署到linux后流程图不显示汉字的问题
  6. 通信算法之145:OFDM系统频偏(IFO/FFO)对频域信号影响
  7. linux TTY子系统(3) - tty driver
  8. 【JavaScript】Web APIs基础
  9. D. Dog Walking
  10. 一锅大杂烩-------板子合集