SpringCloud框架搭建(十) 断路器聚合监控

看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。

turbine是聚合服务器发送事件流数据的一个工具,hystrix的监控中,只能监控单个节点,实际生产中都为集群,因此可以通过 turbine来监控集群下hystrix的metrics情况,通过eureka来发现hystrix服务。

新建一个maven项目eureka-turbine

pom添加依赖spring-cloud-starter-netflix-turbine



    
        parent
        com.cjc.spring.cloud
        1.0-SNAPSHOT
    
    4.0.0

    com.cjc.spring.cloud
    eureka-turbine
    1.0-SNAPSHOT

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix-dashboard
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-turbine
        
    

启动类添加注解

@EnableHystrix @EnableHystrixDashboard @EnableCircuitBreaker @EnableTurbine

 

package com.cjc.spring.cloud.turbine.main;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

@SpringBootApplication
@EnableEurekaClient
@EnableHystrix
@EnableHystrixDashboard
@EnableCircuitBreaker
@EnableTurbine
public class ApplicationMain {
    public static void  main(String arg[]){
        SpringApplication.run(ApplicationMain.class);
    }
}

application.yml中添加配置

server:
  port: 8087

spring:
  application:
    name: eureka-turbine

eureka:
  client:
    register-with-eureka: true     #false表示不向注册中心注册自己。
    fetch-registry: true          #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    serviceUrl:
      defaultZone: http://localhost:8081/eureka/

management:
  endpoints:
    web:
      exposure:
        include: "*"
      cors:
        allowed-origins: "*"
        allowed-methods: "*"

turbine:
  app-config: eureka-points,eureka-user  #需要监控的服务名
  aggregator:
    clusterConfig: default #需要监控的服务集群名
  clusterNameExpression: new String("default")
  combine-host: true
  instanceUrlSuffix:
    default: actuator/hystrix.stream

 

启动eureka-turbine,访问http://localhost:8087/turbine.stream

SpringCloud框架搭建(十) 断路器聚合监控_第1张图片

 

依次访问http://localhost:8083/getUserPoints和http://localhost:8082/getConfig。

在任意一个hystrix界面如http://localhost:8087/hystrix/中输入http://localhost:8087/turbine.stream

SpringCloud框架搭建(十) 断路器聚合监控_第2张图片

 

由此可见eureka-turbine中聚合了两个服务类型的断路器监控

 

源码下载:https://github.com/cxsummer/springcloud

你可能感兴趣的:(SpringCloud框架搭建(十) 断路器聚合监控)