hystrix dashboard Unable to connect to Command Metric Stream 的解决办法

  • Post author:
  • Post category:其他


测试了一个 hystrix dashboard 项目,可以检测其他 springboot 服务的状态。将这个项目连接到我的另一个 springCloud 项目里,却报错:  Unable to connect to Command Metric Stream

在网上搜索发现一种解决方法说:如果使用的是 springBoot 2.x 等比较新的版本,需要在 hystrix 的消费端增加一个 ServletRegistrationBean,用来配置监控路径。检查了一下自己 springCloud 项目,发现用的是 springBoot 2.0.3。然后在被监控项目的启动类里增加 ServletRegistrationBean 这个 bean,之后 hystrix dashboard 就能检测到其他 springboot 服务了。

@EnableCircuitBreaker
@SpringBootApplication
@EnableDiscoveryClient
public class BookConsumer8077Application {
	// 这个配置是为了实现服务监控,与断路器无关,
	// 因为 springboot 2.x 的默认路径不是 "/hystrix.stream",
	// 所以需要在项目里配置这个 ServletRegistrationBean
	@Bean
	public ServletRegistrationBean getServlet() {
		HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
		ServletRegistrationBean registrationBean = new ServletRegistrationBean( streamServlet );

		registrationBean.setLoadOnStartup( 1 );
		registrationBean.addUrlMappings( "/hystrix.stream" );
		registrationBean.setName( "HystrixMetricsStreamServlet" );

		return registrationBean;
	}

	//
	public static void main( String[] ar ) {
		SpringApplication.run( BookConsumer8077Application.class, ar );
	}

}



版权声明:本文为beguile原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。