您好,登錄后才能下訂單哦!
1、概念
Turbine 是聚合服務器發送事件流數據的一個工具,用來監控集群下 hystrix 的 metrics 情況。
2、引入依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
3、創建應用
TurbineApplication
@SpringBootApplication
@EnableTurbine
public class TurbineApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(TurbineApplication.class).web(true).run(args);
}
}
4、對應配置信息
server.port=8031
spring.application.name=turbine
turbine.appConfig=app01,app02
turbine.aggregator.clusterConfig= app
turbine.clusterNameExpression= metadata['cluster']
turbine.appConfig 配置需要聚合的應用
turbine.aggregator.clusterConfig turbine需要聚合的集群名稱 通過 http://localhost:8031/turbine.stream?cluster=app 訪問
turbine.clusterNameExpression 獲取集群名表達式,這里表示獲取元數據中的cluster數據,在app01、app02為配置對應信息
5、創建EurekaServer服務
6、創建應用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";
}
}
}
對應配置:
server.port= 8091
spring.application.name=app01
eureka.instance.hostname=localhost
eureka.instance.metadata-map.cluster=app
7、創建應用app02
對應配置:
server.port= 8092
spring.application.name=app02
eureka.instance.hostname=localhost
eureka.instance.metadata-map.cluster=app
8、三個應用同時注冊到EurekaServer,然后啟動大盤服務,在大盤服務里面輸入http://localhost:9031/turbine.stream?cluster=app得到監控界面;
9、監控界面的各個指標的含義
圓形顏色和大小:代表健康情況和流量
折線:2分鐘內的吞吐率變化情況
hosts:集群中節點個數
median: 每個請求時間的中位數
mean: 平均每個請求消耗的時間
subscriberGetAccount:
綠200545:代表成功請求數量
藍0:代表斷路數量
黃19:代表表超時的線程數量
紫94:代表線程池拒絕次數,即線程不夠用
紅0: 失敗或異常數量
灰0%: 最后10秒錯誤率
host: 各節點每秒的平均請求吞吐量
cluster: 集群每秒的請求吞吐量
circuit:代表斷路器狀態即:是否打開斷路器 90th,99th,99.5th:
最后1分鐘各種延遲的百分比。如圖:90%的請求小于10ms;而99%的請求小于44ms,99.5%的請求在61ms完成。
10、總結
通過turbine可以監控集群的請求量,可以知道系統的請求高峰期,從而更好的知道系統的短板在哪里
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。