`
阅读更多

SpringCloud Hystrix dashboard2.2.7使用和配置,SpringCloud Hystrix dashboard服务监控

Unable to connect to Command Metric Stream.解决方案

 

================================

©Copyright 蕃薯耀 2021-03-15

http://fanshuyao.iteye.com/

 

一、SpringCloud Hystrix使用和配置

SpringCloud Hystrix使用和配置,见:

https://www.cnblogs.com/fanshuyao/p/14537475.html

 

项目:

服务消费者:springCloud-hystrix-web-8655
服务监控:springCloud-hystrix-dashboard-8656

 

二、SpringCloud Hystrix dashboard使用和配置(服务监控:springCloud-hystrix-dashboard-8656)

1、pom.xml引入依赖
引入:spring-cloud-starter-netflix-hystrix-dashboard、spring-boot-starter-actuator

复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    <version>2.2.7.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>
复制代码

 

2、application.properties配置文件修改

复制代码
#监控访问地址:http://127.0.0.1:8656/hystrix
#要监控的地址:http://127.0.0.1:8655/actuator/hystrix.stream
server.port=8656

#必须要配置hystrix.dashboard.proxy-stream-allow-list,不然进入监听页面,会报错:Unable to connect to Command Metric Stream.

#控制台输出:ashboardConfiguration$ProxyStreamServlet : Origin parameter: http://127.0.0.1:8655/actuator/hystrix.stream is not in the allowed list of proxy host names.  If it should be allowed add it to hystrix.dashboard.proxyStreamAllowList.

#配置的访问列表的地址,必须一一对应:
#如使用:http://127.0.0.1:8655/actuator/hystrix.stream访问,就配置hystrix.dashboard.proxy-stream-allow-list=127.0.0.1
#如使用:http://localhost:8655/actuator/hystrix.stream访问,就配置hystrix.dashboard.proxy-stream-allow-list=localhost
#不然会出现:Unable to connect to Command Metric Stream.
hystrix.dashboard.proxy-stream-allow-list=127.0.0.1
复制代码

 

3、启动类
@EnableHystrixDashboard:启动监控

复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;

@SpringBootApplication
@EnableHystrixDashboard
public class SpringCloudHystrixDashboard8656Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudHystrixDashboard8656Application.class, args);
    }

}
复制代码

 

三、服务消费者:springCloud-hystrix-web-8655,修改监控配置

1、pom.xml引入依赖,actuator不能少

复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    <version>2.2.7.RELEASE</version>
</dependency>

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
复制代码

 

2、application.properties配置文件修改

#熔断监控暴露的接口,或者使用
#使用*表示全部
#management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.include=hystrix.stream,info,health

 

3、启动类
加上@EnableHystrix,或者@EnableCircuitBreaker,而@EnableHystrix继承于@EnableCircuitBreaker

复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
@EnableEurekaClient
@EnableHystrix
public class SpringCloudHystrixWeb8655Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringCloudHystrixWeb8655Application.class, args);
    }

}
复制代码

 


四、启动测试
启动服务消费者和服务监控

1、在浏览器输入地址:

http://127.0.0.1:8656/hystrix

 

2、在输入框输入监控的地址(服务消费者的监控地址):

 这里的地址是有/actuator的,有些版本是没有这个的。

http://127.0.0.1:8655/actuator/hystrix.stream

 

 

听说这样能把/actuator去掉(未验证):

#修改base-path,默认是/actuator
#private String basePath = "/actuator";
management.endpoints.web.base-path=/

 

 

3、Delay和title自己定义就好

 

4、点击Monitor Stream按钮进入监控页面,然后调用服务消费者的接口产生服务调用数据

 

5、当一个服务请求不断发生错误,如10秒中产生20次请求,且请求失败率达到50%以上,此服务就会发生熔断(仅是单个服务,其它服务不影响)

 


五、注意事项


1、Unable to connect to Command Metric Stream.

 

 

问题原因是:

ashboardConfiguration$ProxyStreamServlet : Origin parameter: http://127.0.0.1:8655/actuator/hystrix.stream is not in the allowed list of proxy host names.  If it should be allowed add it to hystrix.dashboard.proxyStreamAllowList.

翻译:ashboardConfiguration $ ProxyStreamServlet:原始参数:http://127.0.0.1:8655/actuator/hystrix.stream不在代理主机名的允许列表中。 如果应允许将其添加到hystrix.dashboard.proxyStreamAllowList。

就是要配置:hystrix.dashboard.proxy-stream-allow-list

 

解决方法是:

在服务监控:springCloud-hystrix-dashboard-8656项目的application.properties增加:hystrix.dashboard.proxy-stream-allow-list

复制代码
#配置的访问列表的地址,必须一一对应:
#如使用:http://127.0.0.1:8655/actuator/hystrix.stream访问,就配置hystrix.dashboard.proxy-stream-allow-list=127.0.0.1
#如使用:http://localhost:8655/actuator/hystrix.stream访问,就配置hystrix.dashboard.proxy-stream-allow-list=localhost
#不然会出现:Unable to connect to Command Metric Stream.
hystrix.dashboard.proxy
-stream-allow-list=127.0.0.1
复制代码

 

 

 

(如果文章对您有所帮助,欢迎捐赠,^_^)

================================

©Copyright 蕃薯耀 2021-03-15

http://fanshuyao.iteye.com/

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics