内容简介:上次说了Hystrix,这个Hystrix是springcloud核心内容,如果还是比较了解,多看看官方的api,一定要记住要看一手文档,不要看二手文档。上次都是用的小demo,但是在互联网公司这些小的demo用的是最多的,源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-Hystrix&Feign监控Dashboard与Turbine聚合(97)/
上次说了Hystrix,这个Hystrix是springcloud核心内容,如果还是比较了解,多看看官方的api,一定要记住要看一手文档,不要看二手文档。上次都是用的小demo,但是在互联网公司这些小的demo用的是最多的,
源码:https://github.com/limingios/netFuture/tree/master/源码/『互联网架构』软件架构-Hystrix&Feign监控Dashboard与Turbine聚合(97)/
(一)Feign整合Hystrix
-
Feign是以接口形式工作的,要如何整合Hystrix了?又是如何实现降级了?
>事实上,SpringCloud默认已为Feign整合了Hystrix,只要Hystrix在项目的classpath中,Feign默认就会用断路器包裹所有方法。(注意:从Spring Cloud Dalston开始,Feign默认是不开启Hystrix的。因此,如使用Dalston及以上版本请务必额外设置属性:feign.hystrix.enabled=true,否则断路器不会生效)
源码:07-ms-consumer-order-feign-hystrix-fallback
Feign整合Hystrix的写法见
(二)Feign禁用Hystrix
-
如何Feign禁用Hystrix
> SpringCloud为Feign默认整合了Hystrix,也就是说只要Hystrix在项目的classpath中,Feign就会使用断路器包裹Feign客户端的所有方法(Dalston及以上版本默认Feign不开启Hystrix)。这样虽然方便,但有的场景并不需要该功能,如何为Feign禁用Hystrix呢?
源码:07-ms-consumer-order-feign-hystrix-fallback
-
全局禁用Hystrix
> 只需在application.yml中配置feign.hystrix.enabled=false即可
为指定Feign客户端禁用Hystrix:增加< FeignDisableHystrixConfiguration >类
在FeignClient注解里加上configuration的属性配置
-
流程启动项目
> 源码:07-ms-consumer-order-feign-hystrix-fallback
> 源码:07-ms-provider-user
> 源码:07-ms-eureka-server
(三)Hystrix监控
Hystrix还提供了近乎实时的监控。 HystrixCommand在执行时,会生成
执行结果和运行指标,比如每秒执行的请求数、成功数等,这些监控数据对分析应用系统的状态很有用。
使用 Hystrix的模块 hystrix-metrics-event-stream,就可将这些监控的指标信息以text/event-stream的格式暴露给外部系统。 spring-cloud-starter-netflix-hystrix包含该模块,在此基础上,只须为项目添加 spring-boot-starter-actuator依赖,就可使用/hystrix.stream端点获得Hystrix的监控信息了。
-
启动项目
> 源码:07-ms-consumer-order-feign-hystrix-fallback-stream
> 源码:07-ms-provider-user
> 源码:07-ms-eureka-server
为项目增加依赖
在启动类上增加@EnableCircuitBreaker,这样就可以使用/hystrix.stream端点监控Hystrix了。
请求对应url:http://127.0.0.1:8020/user/1
请求对应url:http://127.0.0.1:8020/hystrix.stream
上边都是文字,看都看懵逼了。还是找个可视化的吧。
(四)使用Hystrix Dashboard可视化监控数据
前面讨论了Hystrix的监控,但访问/hystrix.stream端点获得的数据是以文字形式展示的。很难通过这些数据,一眼看出系统当前的运行状态。可使用 Hystrix Dashboard,让监控数据图形化、可视化。
源码:07-ms-hystrix-dashboard
项目添加依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency>
并在启动类上增加注解@EnableHystrixDashboard
运行项目访问:http://localhost:8030/hystrix,效果如下图
将上一个项目的查看监控数据地址输入,在title里任意输入一个监控名称test,点击Monitor Stream按钮,效果如下图(须先运行至少一次订单服务的用户查询接口才能显示数据,否则无监控数据)。
在监控的界面有两个重要的图形信息:一个实心圆和一条曲线。
* 实心圆:
1.通过颜色的变化代表了实例的健康程度,健康程度从绿色、黄色、橙色、
红色递减。
2.通过大小表示请求流量发生变化,流量越大该实心圆就越大。所以可以在大
量的实例中快速发现故障实例和高压实例。
* 曲线:
用来记录2分钟内流浪的相对变化,可以通过它来观察流量的上升和下降趋势。
(五)使用Turbine聚合监控数据
Turbine是一个聚合 Hystrix监控数据的工具,它可将所有关/hystrix.stream端点的数据聚合到一个组合的/turbine.stream中,从而让集群的监控更加方便。
源码:07-ms-hystrix-turbine
添加依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-turbine</artifactId> </dependency>
在启动类上增加注解@EnableTurbine
编写配置文件application.yml
Turbine会在Eureka Server中找到microservice-consumer-order和
microservice-consumer-order-feign-hystrix-fallback-stream这两个微服务,并聚合两个微服务的监控数据。
源码运行流程:
1、运行07-ms-eureka-server项目
2、运行07-ms-provider-user项目
3、运行06-ms-consumer-order-ribbon-hystrix-fallback项目
4、运行07-ms-consumer-order-feign-hystrix-fallback-stream项目
5、运行07-ms-hystrix-turbine项目
6、运行07-ms-hystrix-dashboard项目
访问turbine监控地址:http://127.0.0.1:8031/turbine.stream,可以看到turbine的聚合监控数据。
访问dashboard地址:http://localhost:8030/hystrix,将该turbine的监控地址输入dashboard。
hystrix这个监控是实时的,如果在线上出现问题了,该怎么办,不可能一天到晚盯着屏幕吧,之前的公司如果出现问题,发生熔断了也就是在hystrix查看的时候Circuit opened了,针对hystrix历史运维监控这块,这次是说不完的,直接对开发来说用处也不大。在之后的文章说讲解吧。
PS:springcloud的监控体系缺失很棒,这是dubbo这些无法比拟的。大家springcloud还有很多不健全的地方,我相信后期springcloud绝对会成为主流。
>>原创文章,欢迎转载。转载请注明:转载自,谢谢!>>原文链接地址:上一篇:
已是最新文章
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 监控聚合器系列之: open-falcon新聚合器polymetric
- elasticsearch学习笔记(七)——快速入门案例实战之电商网站商品管理:嵌套聚合,下钻分析,聚合分析
- mongodb高级聚合查询
- MongoDB聚合(aggregate)
- mongodb 聚合管道
- MongoDB指南---16、聚合
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Remote
Jason Fried、David Heinemeier Hansson / Crown Business / 2013-10-29 / CAD 26.95
The “work from home” phenomenon is thoroughly explored in this illuminating new book from bestselling 37signals founders Fried and Hansson, who point to the surging trend of employees working from hom......一起来看看 《Remote》 这本书的介绍吧!