Hystrix仪表板不工作
问题描述:
我在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
答
找到答案..我们需要在响应头中添加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映射。
嗨,谢谢,它适合我。第3部分不清楚,但没有必要使用它。 –