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


Spring Cloud Turbine

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

添加依賴

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

注意:因為我們使用的注冊中心是Consul,所以需要排除默認的euraka包,不然會有沖突啟動出錯。

pom.xml

        <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配置。

application.yml

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收集信息是從注冊中心獲取相關服務或集群的,所以需要把監控目標也注冊到注冊中心。

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

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

測試效果

依次啟動 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/ 
版權所有,歡迎轉載,轉載請注明原文作者及出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM