问题记录:Hystrix Dashboard 提示:Unable to connect to Command Metric Stream.

问题

Hystrix Dashboard
后台提示:

2020-08-19 18:56:21.440  WARN 15276 --- [nio-8210-exec-8] ashboardConfiguration$ProxyStreamServlet : Origin parameter: http://127.0.0.1:8010/hystrix.stream is not in the allowed list of proxy host names.  If it should be allowed add it to hystrix.dashboard.proxyStreamAllowList.

解决

配置文件application.properties中添加白名单配置:

hystrix.dashboard.proxy-stream-allow-list=**

排错过程(原理)

  1. 日志文件中提示,需要配置hystrix.dashboard.proxyStreamAllowList,但没有说明具体怎么配置,所以跟踪代码。

  2. 配置文件中按下键盘ctrl点击配置项,跟踪进入Properties文件。proxyStreamAllowList配置项是一个String类型的数组,哪里用到了呢?继续跟踪。
    配置文件

  3. 查找getProxyStreamAllowList()的调用。在getProxyStreamAllowList()方法中打断点,刷新页面。调用栈中发现isAllowedToProxy()方法调用了getProxyStreamAllowList()方法。
    断点1

  4. 切换到isAllowedToProxy()方法,阅读代码大概了解到是Hystrix Dashboard会通过proxyUrl解析到host部分,然后通过配置的proxyStreamAllowList判定是否允许被访问。这里我们可以看到pathMatcher.match(pattern, host)是判定的方法,可以猜测pattern的配置方式是host.分隔配置的。为了确认这一项,继续进入match()方法。
    在这里插入图片描述

  5. match()方法调用了doMatch()方法,阅读代码时发现,代码中多次出现了**的判定,猜测**是通配的配置。将该配置配置在properties文件中,重启测试通过。(有兴趣的也可以阅读这段代码,然后得出结论,代码太长,我懒得读了)
    match()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值