溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

spring cloud(八):Turbine的應(yīng)用

發(fā)布時(shí)間:2020-08-03 11:48:37 來源:網(wǎng)絡(luò) 閱讀:2127 作者:browser123 欄目:軟件技術(shù)

1、概念

Turbine 是聚合服務(wù)器發(fā)送事件流數(shù)據(jù)的一個(gè)工具,用來監(jiān)控集群下 hystrix 的 metrics 情況。

2、引入依賴

    <dependency>        

        <groupId>org.springframework.cloud</groupId>         

       <artifactId>spring-cloud-netflix-turbine</artifactId>      

      </dependency>

3、創(chuàng)建應(yīng)用

        TurbineApplication

        @SpringBootApplication

        @EnableTurbine

        public class TurbineApplication {

          public static void main(String[] args) {

            new SpringApplicationBuilder(TurbineApplication.class).web(true).run(args);

          }

        }

4、對(duì)應(yīng)配置信息

            server.port=8031

            spring.application.name=turbine

            turbine.appConfig=app01,app02

            turbine.aggregator.clusterConfig= app

            turbine.clusterNameExpression= metadata['cluster']

   turbine.appConfig 配置需要聚合的應(yīng)用 
   turbine.aggregator.clusterConfig turbine需要聚合的集群名稱 通過 http://localhost:8031/turbine.stream?cluster=app 訪問 
   turbine.clusterNameExpression 獲取集群名表達(dá)式,這里表示獲取元數(shù)據(jù)中的cluster數(shù)據(jù),在app01、app02為配置對(duì)應(yīng)信息

5、創(chuàng)建EurekaServer服務(wù)

6、創(chuàng)建應(yīng)用app01   

        @Configuration

        @EnableAutoConfiguration

        @EnableDiscoveryClient

        @EnableCircuitBreaker

        @RestController

        public class App01 {

        public static void main(String[] args) {

        SpringApplication.run(App01.class, args);

        }

        @Autowired

        private HelloService service;

        @RequestMapping("/")

        

        public String hello() {

        return this.service.hello();

        }

        @Component

        public static class HelloService {

        @HystrixCommand(fallbackMethod = "fallback")

        public String hello() {

        return "Hello World";

        }

        public String fallback() {

        return "Fallback";

        }

        }

        }

對(duì)應(yīng)配置:

          server.port= 8091 
          spring.application.name=app01 
          eureka.instance.hostname=localhost 
          eureka.instance.metadata-map.cluster=app

7、創(chuàng)建應(yīng)用app02

      對(duì)應(yīng)配置:

          server.port= 8092 
          spring.application.name=app02
          eureka.instance.hostname=localhost 
          eureka.instance.metadata-map.cluster=app

8、三個(gè)應(yīng)用同時(shí)注冊(cè)到EurekaServer,然后啟動(dòng)大盤服務(wù),在大盤服務(wù)里面輸入http://localhost:9031/turbine.stream?cluster=app得到監(jiān)控界面;

9、監(jiān)控界面的各個(gè)指標(biāo)的含義

  1. 圓形顏色和大小:代表健康情況和流量

  2. 折線:2分鐘內(nèi)的吞吐率變化情況

  3. hosts:集群中節(jié)點(diǎn)個(gè)數(shù)

  4. median: 每個(gè)請(qǐng)求時(shí)間的中位數(shù)

  5. mean: 平均每個(gè)請(qǐng)求消耗的時(shí)間

  6. subscriberGetAccount
    綠200545:代表成功請(qǐng)求數(shù)量 
    藍(lán)0:代表斷路數(shù)量 
    黃19:代表表超時(shí)的線程數(shù)量 
    紫94:代表線程池拒絕次數(shù),即線程不夠用 
    紅0: 失敗或異常數(shù)量 
    灰0%: 最后10秒錯(cuò)誤率

  7. host: 各節(jié)點(diǎn)每秒的平均請(qǐng)求吞吐量

  8. cluster: 集群每秒的請(qǐng)求吞吐量

  9. circuit:代表斷路器狀態(tài)即:是否打開斷路器 90th,99th,99.5th: 
    最后1分鐘各種延遲的百分比。如圖:90%的請(qǐng)求小于10ms;而99%的請(qǐng)求小于44ms,99.5%的請(qǐng)求在61ms完成。

10、總結(jié)

  通過turbine可以監(jiān)控集群的請(qǐng)求量,可以知道系統(tǒng)的請(qǐng)求高峰期,從而更好的知道系統(tǒng)的短板在哪里

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI