Hystrix数据进行聚合展示-Turbine(HTTP方式)

简介: Hystrix数据进行聚合展示-Turbine(HTTP方式)

背景


上一篇使用Hystrix Dashboard来展示Hystrix用于熔断的各项指标。通过Hystrix Dashboard,可以方便的查看服务实例的综合情况,但是,在实际的生产环境中,我们的服务是肯定需要做高可用的,而仅通过Hystrix Dashboard只能实现对服务单个实例的数据展现。那么对于多实例的情况,我们就需要将这些指标数据进行聚合。接下来将使用另外一个工具:Turbine来聚合指标数据。

依赖项目


  • 服务注册中心—— springcloud-eureka
  • 服务提供者—— springcloud-addition-service(加法计算服务模拟微服务)
  • 使用ribbon和hystrix实现的服务消费者—— springcloud-consumer-hystrix 端口9604
  • 用于展示服务消费者Hystrix数据的dashboard—— springcloud-hystrix-dashboard 端口9605

通过HTTP方式收集聚合


  • 创建一个标准的Spring Boot工程,命名为: springcloud-turbine,端口9700。
  • 编辑pom.xml,具体依赖内容如下:
<parent>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-parent</artifactId>
    <version>Dalston.SR1</version>
    <relativePath /> <!-- lookup parent from repository -->
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-turbine</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork>
          <executable>true</executable>
        </configuration>
      </plugin>
    </plugins>
  </build>
  • 创建应用主类Server,并使用@EnableTurbine注解开启Turbine。
@SpringBootApplication
@EnableTurbine
public class Server {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Server.class).web(true).run(args);
    }
}
  • 在application.properties加入eureka和turbine的相关配置,具体如下:
spring.application.name=springcloud-turbine
logging.path=./logs
server.port=9700
eureka.client.serviceUrl.defaultZone=http://peer1:9600/eureka/,http://peer2:9600/eureka/,http://peer3:9600/eureka/
turbine.app-config=springcloud-consumer-hystrix
turbine.cluster-name-expression="default"
turbine.combine-host-port=true

参数说明

  1. turbine.app-config参数指定了需要收集监控信息的服务名,如果有多个用英文的逗号分隔;
  2. turbine.cluster-name-expression 参数指定了集群名称为default,该参数可以用来区分这些不同的聚合集群,同时该参数值可以在Hystrix仪表盘中用来定位不同的聚合集群,只需要在Hystrix Stream的URL中通过cluster参数来指定;
  3. turbine.combine-host-port参数设置为true,可以让同一主机上的服务通过主机名与端口号的组合来进行区分,默认情况下会以host来区分不同的服务,这会使得在本地调试的时候,本机上的不同服务聚合成一个服务来统计。
  • 最后,分别启动 springcloud-eurekaspringcloud-addition-servicespringcloud-consumer-hystrixspringcloud-turbine以及 springcloud-hystrix-dashboard

查看 springcloud-turbine服务的日志中看到

c.n.t.monitor.instance.InstanceMonitor   : Url for host: http://192.168.1.112:9604/hystrix.stream default

说明已经开始收集到服务的信息了

访问 springcloud-hystrix-dashboardhttp://192.168.1.112:9605/hystrix,然后开启对http://192.168.1.112:9700/turbine.stream 的监控,如图:

点击 MonitorStream按钮

最初显示loading...,当我们调用 springcloud-consumer-hystrix服务的hystrix接口后,可以正常显示了

这时候,将看到针对服务 springcloud-consumer-hystrix的聚合监控数据。


相关文章
|
1月前
|
API
Arkts http数据请求
Arkts http数据请求
|
2月前
|
SQL DataWorks 关系型数据库
DataWorks报错问题之写入数据时报‘http.client.ResponseNotReady’如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
2月前
|
JSON 数据格式
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
31 0
|
3月前
|
安全 前端开发 网络协议
|
4月前
|
存储 iOS开发 开发者
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
使用克魔助手进行iOS数据抓包和HTTP抓包的方法详解
50 0
|
25天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
14 0
|
3月前
|
Web App开发 XML 缓存
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
【2月更文挑战第6天】《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的会话面板了。Fiddler抓取到的每条http请求(每一条称为一个session),会话列表 主要是Fiddler所抓取到的每一条http请求都会显示到这里。主要包含了请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息。
59 0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
|
3月前
|
消息中间件 Web App开发 监控
mqtt数据问题之如何实现webRTC 协议的监控视频压测
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
65 0
|
3月前
|
安全 前端开发 算法