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

测试了一个 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 就能检测到这个项目了。

hystrix dashboard Unable to connect to Command Metric Stream 的解决办法_第1张图片

@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 );
	}

}

 

 

 

 

 

 

你可能感兴趣的:(java)