springboot2.1.3 hystrix集成及hystrix-dashboard监控详解
Hystrix是Netflix开源技术栈中的又一员猛将
其主要用于在微服务中实现容错和降级。Hystrix提供了一种特殊的线程池模型,它为每一个服务提供一个线程池,其中线程池的数量是可以配置的。
这种模型其实是舱壁模式的一种实现,它将每个服务隔离开来,隔离后,延时的被调用服务只会耗尽自己的线程池,之后进入失败状态,如果不隔离,可能会耗尽整个tomcat线程池,导致整个服务挂掉。
除了线程模型,Hystrix还提供了一种fallback模式,允许我们控制被调用的服务的响应延时时间,对超出这个响应时间的请求,可以是指快速失败(立即抛出运行时异常结束流程),其也可以返回我们指定的一个默认的响应。
Hystrix熔断过程
1.在一定时间内(改值可配置)内,假设对服务的请求的QPS达到一定阈值(该阈值可配置),同时,这些请求的的错误率达到一定阈值(该阈值可配置),断路器打开。注意,这是熔断发生条件。
2.断路器打开之后,断路器将断路后续所有经过该熔断器的请求直接走fallback逻辑。
3.经过一定时间(即"休眠窗口",该阈值可配置),断路器处于半打开状态,允许后续的第一个请求对服务进行调用,若请求失败,断路器继续打开,再等待一个"休眠窗口"后再处于半开状态,循环往复,若请求成功,断路器关闭。
1.首先需要引入所需jar包

2.初始化AsyncHttpClient调用实体

3.为了实现服务降级容错功能
需要使用HystrixCommand实现类来包裹服务通信框架的调用行为,具体代码如下:

4.编写一个集成服务降级容错的服务通信类
代码如下

5.编写一个controller进行验证

6.被调用的controller

7.搭建Hystrix监控系统
创建HystrixMetricsStreamServlet实例,下载Hystrix-Dashboard展示监控信息

Hystrix-Dashboard成功监听后显示如下:

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java 避免出现NullPointerException(空指针)的方法总结
这篇文章主要介绍了java 避免出现NullPointerException(空指针)的方法总结的相关资料,需要的朋友可以参考下2017-09-09
Spring Boot Admin的使用详解(Actuator监控接口)
这篇文章主要介绍了Spring Boot Admin的使用详解(Actuator监控接口),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-05-05
SpringBoot 配置多个JdbcTemplate的实现步骤
本文介绍了在SpringBoot中配置多个JdbcTemplate的方法,包括创建项目、添加依赖、配置数据源和多个JdbcTemplate的使用,感兴趣的可以了解一下2024-11-11
springmvc请求转发和重定向问题(携带参数和不携带参数)
这篇文章主要介绍了springmvc请求转发和重定向问题(携带参数和不携带参数),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-10-10
JUC并发编程LinkedBlockingQueue队列深入分析源码
LinkedBlockingQueue 是一个可选有界阻塞队列,这篇文章主要为大家详细介绍了Java中LinkedBlockingQueue的实现原理与适用场景,感兴趣的可以了解一下2023-04-04
SpringBoot JPA实现增删改查、分页、排序、事务操作等功能示例
本篇文章主要介绍了SpringBoot JPA实现增删改查、分页、排序、事务操作等功能示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-03-03
SpringBoot 如何添加容器启动的初始化逻辑的操作方法
这篇文章主要介绍了SpringBoot 如何添加容器启动的初始化逻辑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09


最新评论