⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 https://mp.weixin.qq.com/s/Frvb20GcMtnjPr0q8wrRRg 「coding到灯火阑珊」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

1. 简介

Resilience4j是受Hystrix启发而做的新一代轻量级熔断器,基于Java8的函数式编程开发。resilience4j只依赖一个Vavr包(函数式库),不需要再引入其他包,所以相对于Hystrix是轻量级的。同时resilience4j的模块化程度更好,很容易的扩展附加模块。

目前Resilience4j包括熔断(CircuitBreaker)、限流(RateLimiter)、隔离(BulkHead)、重试(Retry)、缓存(Cache)、执行时间限制(TimeLimiter)等模块及一些附加模块(Add-on modules)。

2. 环境搭建

2.1 安装 Gradle 及设置

由于Resilience4j采用gradle进行编译及打包,所以我们需要下载及安装最新版本的gradle,同时在IDE中进行环境设置。Resilience4j在github上的地址:https://github.com/resilience4j/resilience4j.git clone下来及导入到IntelliJ IDEA中,设置resilience4j的gradle环境,如图:

img

Service directory path是放置类包的仓库。勾选Use auto-import选项,grade会对resilience4j源码进行依赖导入及编译。

2.2 代码调试

编译好的Resilience4j代码,如下图:

img

如果我们要研究circuitbreaker的源码,就可以进入到resilience4j-circuitbreaker模块中,找到单元测试类CircuitBreakerTest类,设置断点,进行代码跟踪调试了。

测试类路径在:

img

其中的一个测试方法如下图:

img

文章目录
  1. 1. 1. 简介
  2. 2. 2. 环境搭建
    1. 2.1. 2.1 安装 Gradle 及设置
    2. 2.2. 2.2 代码调试