SpringCloud-Greenwich.SR1 版本,Unable to connect to Command Metric Stream

1.Provider pom.xml 配置


        
        
            com.ygx
            cloud-api
            ${project.version}
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            mysql
            mysql-connector-java
        
        
            com.alibaba
            druid
        
        
            ch.qos.logback
            logback-core
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-jetty
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
        
        
        
            com.netflix.hystrix
            hystrix-core
        

        
            com.netflix.hystrix
            hystrix-core
        
        
            org.springframework.cloud
            spring-cloud-commons
        
        
            org.springframework.cloud
            spring-cloud-netflix-core
        
        
        
        
            org.springframework
            springloaded
        
        
            org.springframework.boot
            spring-boot-devtools
        
    

2.DashBoard 服务的pom.xml配置

  我原本的配置如下:


        
        
            com.ygx
            cloud-api
            ${project.version}
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix-dashboard
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
                
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
        
        
        
            org.springframework
            springloaded
        
        
            org.springframework.boot
            spring-boot-devtools
        
    

  其他的注解之类的配置,都省略,此时,我启动了eureka本地集群,provider,然后启动dashboard 微服务,在dashboard 监控界面上填写了监控地址,然后点击 Monitor Stream 依然提示 Unable to connect to Command Metric Stream

然后,我将这些pom的配置和springcloud 2.0 之前的版本进行了对比,发现2.0之前的版本,eureka 的 依赖 是这样的 spring-cloud-starter-eureka 依赖,内部直接依赖了 server 和 client,于是我修改了pom文件

 


        
        
            com.ygx
            cloud-api
            ${project.version}
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix-dashboard
        
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-ribbon
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
        
        
        
            org.springframework
            springloaded
        
        
            org.springframework.boot
            spring-boot-devtools
        
    

 

  此时,依然无法正常监控,网上了查到一种方法,亲测,可用,如下:

  需要在 provider 端注入一个servlet

@Configuration
public class HystrixConfig {

	@Bean
    public ServletRegistrationBean getServlet(){
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/actuator/hystrix.stream"); // 此路径可以自定义,一般按照DashBoard 界面的提示填即可
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }
}

  到这一步,我就可以愉快的监控了,切记DashBoard 微服务pom 文件必须将 eureka 的 server 和 client 依赖同时添加,否则,即使在 provider 端注入了 HystrixMetricsStreamServlet ,依然无法正常监控 provider

 

转载于:https://www.cnblogs.com/yuanguoxian/p/11059172.html

你可能感兴趣的:(SpringCloud-Greenwich.SR1 版本,Unable to connect to Command Metric Stream)