解决Hystrix Dashboard 一直是Loading ...的情况

Hystrix是什么

Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。

Hystrix能做什么?

  • 在通过第三方客户端访问(通常是通过网络)依赖服务出现高延迟或者失败时,为系统提供保护和控制
  • 在分布式系统中防止级联失败
  • 快速失败(Fail fast)同时能快速恢复
  • 提供失败回退(Fallback)和优雅的服务降级机制
  • 提供近实时的监控、报警和运维控制手段

Hystrix设计原则?

  • 防止单个依赖耗尽容器(例如 Tomcat)内所有用户线程
  • 降低系统负载,对无法及时处理的请求快速失败(fail fast)而不是排队
  • 提供失败回退,以在必要时让失效对用户透明化
  • 使用隔离机制(例如『舱壁』/『泳道』模式,熔断器模式等)降低依赖服务对整个系统的影响
  • 针对系统服务的度量、监控和报警,提供优化以满足近实时性的要求
  • 在 Hystrix 绝大部分需要动态调整配置并快速部署到所有应用方面,提供优化以满足快速恢复的要求
  • 能保护应用不受依赖服务的整个执行过程中失败的影响,而不仅仅是网络请求

Hystrix实现原理-舱壁模式

  • 货船为了进行防止漏水和火灾的扩散,会将货仓分隔为多个,当发生灾害时,将所在货仓进行隔离就可以降低整艘船的风险。

 

 

 

Hystrix dashboard 测试

今天根据他人博客上介绍的Spring Cloud,自己尝试敲了下代码。但走到Hystrix实现熔断机制以及监控熔断信息的时候遇到一个问题:Hystrix 自带了一个dashboard,获取监控的时候界面一直是Loading...没有任何反应,如图:

代码请参考https://blog.csdn.net/column/details/15197.html

 

点击Monitor Stream之后就跳到下面的界面

 

IDEA编辑工具的控制台打印

 

浏览器F12 没有任何报错的信息

 

如果直接访问http://localhost:8764/hystrix.stream 则界面一直会打印ping,但没有结果返回:

 

 

无意中的测试,发现这个Loading...是一直在等待负载均衡的提供方要去消费服务,即访问负载均衡服务器,去调用客户端,如果有数据响应则监控界面就会有图形数据展示:

如果想让图中的数据发生变化,则需要循环多次的去访问负载均衡的提供方,让其消费服务,以至于达到监控的目的。

此时再次访问http://localhost:8764/hystrix.stream,则会有以下数据一直在浏览器中打印:

 

注:Hystrix DashBoard监控的服务都是要求有带上熔断端点的,即带上@HystrixCommand注解的方法,调用没有熔断端点的方法没法得到监控。

 

最后,附上一张图形概要以供参考:

 

参考文章:https://www.cnblogs.com/hejianjun/p/8670693.html

posted @ 2020-04-01 20:00  Q1Zhen  阅读(1442)  评论(0编辑  收藏  举报