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的聚合监控数据。


相关文章
|
11天前
|
消息中间件 测试技术
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
轻量消息队列(原MNS)以其简单队列模型、轻量化协议及按量后付费模式,成为阿里云产品间消息传输首选。本文通过创建主题、订阅、配置告警集成等步骤,展示了该产品在实际应用中的部分功能,确保消息的可靠传输。
32 2
|
4月前
|
SQL JSON 数据库
influxdb 端点使用http进行sql查询,写数据
influxdb 端点使用http进行sql查询,写数据
278 0
|
2月前
|
存储 JSON Go
在Gin框架中优雅地处理HTTP请求体中的JSON数据
在Gin框架中优雅地处理HTTP请求体中的JSON数据
|
2月前
|
JSON JavaScript 前端开发
Haskell中的数据交换:通过http-conduit发送JSON请求
Haskell中的数据交换:通过http-conduit发送JSON请求
|
3月前
|
数据采集 缓存 IDE
Go中遇到http code 206和302的获取数据的解决方案
文章提供了解决Go语言中处理HTTP状态码206(部分内容)和302(重定向)的方案,包括如何获取部分数据和真实请求地址的方法,以便程序员能快速完成工作,享受七夕时光。
197 0
Go中遇到http code 206和302的获取数据的解决方案
|
2月前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
173 0
|
4月前
|
Web App开发 XML 缓存
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
【7月更文挑战第19天】Fiddler会话面板概览:Fiddler的会话列表显示HTTP请求的详细信息,包括ID、状态码、协议、主机名、URL、内容类型、大小、进程及自定义备注。颜色和图标标识状态,如红色表示错误,黄色为认证,蓝色是HTML响应。用户可右键列进行搜索、标记重复、隐藏或自定义列,如添加请求方法。通过界面或脚本可添加自定义列,如显示ServerIP。会话还可复制和保存,解决乱码问题需解码响应体。
71 0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
|
4月前
|
JSON Java Serverless
函数计算产品使用问题之如何使用Go SDK从HTTP上下文中提取JSON数据
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
Java 数据库连接 应用服务中间件
表单数据返回不到,HTTP状态 404 - 未找未找到,解决方法,针对这个问题,写一篇文章,理一下思路,仔细与原项目比对,犯错的原因是Mapper层的select查询表单数据写错,注意打开的路径对不对
表单数据返回不到,HTTP状态 404 - 未找未找到,解决方法,针对这个问题,写一篇文章,理一下思路,仔细与原项目比对,犯错的原因是Mapper层的select查询表单数据写错,注意打开的路径对不对
|
5月前
|
数据安全/隐私保护
数据防护之=HTTPS协议增加了<数据加密>
数据防护之=HTTPS协议增加了<数据加密>

热门文章

最新文章

下一篇
无影云桌面