簡介
上一篇介紹了 Hystrix Dashboard 監控單體應用的例子,在生產環境中,監控的應用往往是一個叢集,我們需要將每個例項的監控資訊聚合起來分析,這就用到了 Turbine 工具。Turbine有一個重要的功能就是匯聚監控資訊,並將匯聚到的監控資訊提供給Hystrix Dashboard來集中展示和監控。
流程
實驗
工程說明
工程名 | 埠 | 作用 |
---|---|---|
eureka-server | 8761 | 註冊中心 |
service-hi | 8762 | 服務提供者 |
service-consumer | 8763 | 服務消費者 |
service-turbine | 8765 | Turbine服務 |
核心程式碼
eureka-server 、service-hi、service-consumer 工程程式碼與上一節 微服務熔斷限流Hystrix之Dashboard 相同,下面是 service-turbine 工程的核心程式碼。
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
複製程式碼
application.yml
server:
port: 8765
spring:
application:
name: service-turbine
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
turbine:
app-config: service-consumer
cluster-name-expression: new String("default")
combine-host-port: true
複製程式碼
引數說明:
- turbine.app-config:指定要監控的應用名
- turbine.cluster-name-expression:指定叢集的名字
- turbine.combine-host-port:表示同一主機上的服務通過host和port的組合來進行區分,預設情況下是使用host來區分,這樣會使本地除錯有問題
啟動類
@SpringBootApplication
@EnableEurekaClient
@EnableHystrixDashboard
@EnableTurbine
public class ServiceTurbineApplication {
public static void main(String[] args) {
SpringApplication.run( ServiceTurbineApplication.class, args );
}
}
複製程式碼
模擬多例項
啟動多個 service-consumer 工程,來模擬多例項,可以通過命令java -jar service-consumer.jar --server.port=XXXX 來實現。
為了方便,在編輯器中實現啟動工程。但 idea 不支援單個應用的多次啟動, 需要開啟並行啟動:
選擇 “Edit Configurations...”
勾選 “Allow running in parallel”
測試
啟動工程,訪問 http//localhost:8763/hi , http//localhost:8764/hi , http//localhost:8763/oh , http//localhost:8764/oh,來產生測試資料。
訪問 http://localhost:8765/hystrix ,
輸入監控流地址 http://localhost:8765/turbine.stream ,點選 Monitor Stream 進入監控頁面
可以看到聚合了兩個例項的 Hystrix dashbord 資料。
原始碼
歡迎掃碼或微信搜尋公眾號《程式設計師果果》關注我,關注有驚喜~