您好,登錄后才能下訂單哦!
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)的含義
圓形顏色和大小:代表健康情況和流量
折線:2分鐘內(nèi)的吞吐率變化情況
hosts:集群中節(jié)點(diǎn)個(gè)數(shù)
median: 每個(gè)請(qǐng)求時(shí)間的中位數(shù)
mean: 平均每個(gè)請(qǐng)求消耗的時(shí)間
subscriberGetAccount:
綠200545:代表成功請(qǐng)求數(shù)量
藍(lán)0:代表斷路數(shù)量
黃19:代表表超時(shí)的線程數(shù)量
紫94:代表線程池拒絕次數(shù),即線程不夠用
紅0: 失敗或異常數(shù)量
灰0%: 最后10秒錯(cuò)誤率
host: 各節(jié)點(diǎn)每秒的平均請(qǐng)求吞吐量
cluster: 集群每秒的請(qǐng)求吞吐量
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)的短板在哪里
免責(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)容。