1. 程式人生 > >Spring Cloud學習--容錯機制(Hystrix之Turbine叢集監控)

Spring Cloud學習--容錯機制(Hystrix之Turbine叢集監控)

使用Turbine聚合監控資料

除了使用/hystrix.stream端點監控單個微服務例項,可以使用Turbine將所有相關的/hystrix.stream聚合到一個組合的/turbine.stream中。
本文依據Hystrix,可見http://blog.csdn.net/u012482647/article/details/78148447 Spring Cloud學習–容錯機制(Hystrix之服務降級)
1.建立一個spring boot專案,新增spring-cloud-starter-turbine依賴。

<dependency>
            <groupId
>
org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-turbine</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.在啟動類上添加註解@EnableTurbine

@EnableTurbine
@EnableDiscoveryClient
@SpringBootApplication
public class SpringCloudTurbineApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudTurbineApplication.class, args);
    }
}

3.配置檔案:

spring.applicaton
.name=turbine-service server.port=2002 management.port=8990 eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/ ##turbine.app-config指定了要收集監控資訊的服務名 turbine.app-config=string-service ##turbine.cluster-name-expression 指定叢集名稱 turbine.cluster-name-expression="default" ##使同一主機上的多個服務例項可以通過主機名和埠號的組合來進行區分 turbine.combine-host-port=true

二、帶你出坑

我在啟動Turbine服務時,出現以下錯誤,導致出現不了如上介面。

com.netflix.turbine.monitor.instance.InstanceMonitor$MisconfiguredHostException: [{"timestamp":1506864554002,"status":404,"error":"Not Found","message":"No message available","path":"/string-service/hystrix.stream"}]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.init(InstanceMonitor.java:318) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.access$100(InstanceMonitor.java:103) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:235) [turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:229) [turbine-core-1.0.0.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]

這個問題,待解決後補充。