美文网首页
13 hystrix dashboard Unable to c

13 hystrix dashboard Unable to c

作者: 滔滔逐浪 | 来源:发表于2019-01-21 20:50 被阅读27次

    spring cloud 在初次使用 hystrix dashboard仪表盘的时候很容易出现hystrix dashboard Unable to connect to Command Metric Stream错误

    如下图:

    1208986-20180423163902260-1404444821.png

    首先查看依赖时候添加全

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.2.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <groupId>com.taotao</groupId>
        <artifactId>consumer</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>consumer</name>
        <description>Demo project for Spring Boot</description>
    
    <properties>
            <java.version>1.8</java.version>
            <spring-cloud.version>Greenwich.RC2</spring-cloud.version>
        </properties>
    
    <dependencies>
    
            <dependency>
                <groupId>com.netflix.hystrix</groupId>
                <artifactId>hystrix-javanica</artifactId>
                <version>RELEASE</version>
            </dependency>
    
    
        <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
                <version>1.3.0.RELEASE</version>
            </dependency>
    
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId
    
        <scope>test</scope>
            </dependency>
        </dependencies>
    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                        <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
        </repositories>
    
    </project>
    

    其次启动程序注解是否添加

    @EnableCircuitBreaker
    @EnableHystrixDashboard
    如果都没问题那么检查下springboot 版本如果是2.0则需要添加 ServletRegistrationBean 因为springboot的默认路径不是 "/hystrix.stream",只要在自己的项目里配置上下面的servlet就可以了

    
    @EnableDiscoveryClient
    @EnableFeignClients
    @EnableEurekaClient
    @SpringBootApplication
    @EnableHystrix
    @EnableHystrixDashboard
    @EnableCircuitBreaker
    public class ConsumerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class, args);
        }
    
    @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;
        }
    }
    
    
    

    修改完成重启服务问题便会解决

    1208986-20180423163902260-1404444821.png
    controller
    

    @RestController
    public class ConsumerController {
    @Autowired
    HelloRemote helloRemote;

    @RequestMapping("/hello")
    public String hello(String name){
        return  helloRemote.hello(name);
    }
    
    @RequestMapping("/getOrderName")
    public  String getOrderName(String name){
        return  helloRemote.getName(name);
    }
    

    }

    
    feign
    
    

    @FeignClient(name="spring-cloud-producer")
    public interface HelloRemote {
    //在HelloRemote类添加指定fallback类,在服务熔断的时候返回fallback类中的内容。
    @RequestMapping("/hello")
    public String hello(@RequestParam(value = "name") String name);
    @RequestMapping("/getName")
    public String getName(@RequestParam("name") String name); //必须加上@RequestParam("name") 才能传值
    }

    访问: 
    
    访问http://localhost:9001/hystrix.stream 也会不断的显示ping。
    
    请求服务http://localhost:9001/hello/neo,就可以看到监控的效果了,首先访问http://localhost:9001/hystrix.stream
    
    
    
    

    相关文章

      网友评论

          本文标题:13 hystrix dashboard Unable to c

          本文链接:https://www.haomeiwen.com/subject/btmhjqtx.html