2016-10-04 120 views
0

我在springboot應用程序中使用REST服務。我正在研究Hystrix以啓用指標。因此,我在版本7的tomcat服務器中部署了hystrix儀表板戰爭。我可以打開頁面http://localhost:8080/hystrix-dashboard/。在我添加了流url後,點擊Monitor streams按鈕,它將我帶到監視器頁面,在那裏我只能看到消息「無法連接到命令矩陣流」。當我查看hystrix控制檯時,我重複看到下面的消息。請幫幫我!Hystrix儀表板不工作

2016-10-04 07:23:28 INFO com.netflix.turbine.discovery.InstanceObservable$1:289 [InstanceObservable$1] [run]: Hosts up:1, hosts down: 0 
2016-10-04 07:23:28 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:28 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:30 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:30 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:31 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:31 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:32 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:32 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:33 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:33 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:35 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:460 [InstanceMonitor] [getNextStatsData]: no more data from c 
onnection to 138.12.51.246 
2016-10-04 07:23:35 INFO com.netflix.turbine.monitor.instance.InstanceMonitor:477 [InstanceMonitor] [retryHostConnection]: Re-initing host 
connection: 138.12.51.246 default 
2016-10-04 07:23:36 INFO 

回答

2

找到答案..我們需要在響應頭中添加MIME類型作爲文本/事件流。我在這裏寫的特定於Springboot與Hystrix儀表板集成的修復。所有你需要做的是,

1)添加點數事件流的依賴在你的pom.xml

<dependency> 
    <groupId>com.netflix.hystrix</groupId> 
    <artifactId>hystrix-metrics-event-stream</artifactId> 
    <version>1.5.5</version> 
</dependency> 

2)在SpringApplication類添加豆標註新的servlet

@Bean 
public ServletRegistrationBean servletRegistration() { 
ServletRegistrationBean registration = new ServletRegistrationBean(new HystrixMetricsStreamServlet(), "/hystrix.stream"); 
return registration; 
} 

3 ) 返回帶有文本/事件流MIME類型的響應頭的響應。 即使如果你有另一種內容類型爲application/xml,無論如何,你也可以這樣做。

HttpHeaders resHeaders = new HttpHeaders(); 
resHeaders.add("Content-Type", "application/xml; charset=utf-8"); 
resHeaders.add("Content-Type", "text/event-stream; charset=utf-8"); 
if(!isError){ 
return new ResponseEntity<String>(responseXml, resHeaders, HttpStatus.OK); 
} 
else{ 
return new ResponseEntity<com.test.pack.fault.Error>(error, resHeaders,HttpStatus.CREATED); 
    } 

4)在版本7或更高版本的Tomcat服務器中下載並部署Hystrix儀表板war文件並啓動服務器。

5)URL打開儀表盤,http://localhost:port/hystrix-dashboard

6)在紅椎主頁,添加應用程序的URL作爲http://localhost:port/contextPath(if任何)/hystrix.stream。 然後點擊添加流buttom並點擊monitor stream按鈕。 hystrix.stream是我們在servlet註冊中給出的url映射。

+0

嗨,謝謝,它適合我。第3部分不清楚,但沒有必要使用它。 –