Spring Boot + Spring Cloud 構建微服務系統(六):熔斷監控集羣(Turbine)

Spring Cloud Turbine

上一章咱們集成了Hystrix Dashboard使用Hystrix Dashboard能夠看到單個應用內的服務信息,顯然這是不夠的,咱們還須要一個工具能讓咱們彙總系統內多個服務的數據並顯示到Hystrix Dashboard上,這個工具就是Turbine。java

添加依賴

修改 spring-cloud-consul-monitor 的pom文件,添加 turbine 依賴包。git

注意:由於咱們使用的註冊中心是Consul,因此須要排除默認的euraka包,否則會有衝突啓動出錯。spring

pom.xmlapp

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

啓動類

啓動類添加 @EnableTurbine 註解,開啓 turbine 支持,添加 @EnableDiscoveryClient 註解,把本身也做爲服務註冊到註冊中心。工具

ConsuleMonitorApplication.java測試

package com.louis.spring.cloud.consul.monitor;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

@EnableTurbine
@EnableHystrixDashboard
@EnableDiscoveryClient
@SpringBootApplication
public class ConsuleMonitorApplication {

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

修改配置

修改配置,配置註冊服務信息,添加turbine配置。ui

application.ymlspa

server:
  port: 8531
spring:
  application:
    name: spring-cloud-consul-monitor
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        serviceName: ${spring.application.name}    # 註冊到consul的服務名稱
turbine:
  instanceUrlSuffix: hystrix.stream    # 指定收集路徑
  appConfig: spring-cloud-consul-consumer    # 指定了須要收集監控信息的服務名,多個以「,」進行區分
  clusterNameExpression: "'default'"    # 指定集羣名稱,若爲default則爲默認集羣,多個集羣則經過此配置區分
  combine-host-port: true    # 此配置默認爲false,則服務是以host進行區分,若設置爲true則以host+port進行區分

註冊消費者

由於turbine收集信息是從註冊中心獲取相關服務或集羣的,因此須要把監控目標也註冊到註冊中心。.net

修改 spring-cloud-consul-consumer,在啓動類添加 @EnableDiscoveryClient 註解,註冊服務。code

修改配置文件,寫入配置服務名稱。

測試效果

依次啓動 spring-cloud-consul-producer、spring-cloud-consul-consumer、spring-cloud-consul-monitor,訪問 http://localhost:8500  查看註冊中心管理界面。

 

確認服務調用無誤以後, 訪問 http://localhost:8531/hystrix/,輸入 http://localhost:8531/turbine.stream,查看監控圖表。

以下圖所示,就是聚合多個Hytrix消費者的信息顯示,因爲我內存有限只啓了一個消費者,因此看起來是同樣的。

內存足夠的話複製幾分消費者項目,修改下啓動端口號啓動就好了。

 

 

源碼下載

碼雲:https://gitee.com/liuge1988/spring-cloud-demo.git


做者:朝雨憶輕塵
出處:https://www.cnblogs.com/xifengxiaoma/ 版權全部,歡迎轉載,轉載請註明原文做者及出處。

相關文章
相關標籤/搜索