一,简介
Resilience4j是受Hystrix启发而做的新一代轻量级熔断器,基于Java8的函数式编程开发。resilience4j只依赖一个Vavr包(函数式库),不需要再引入其他包,所以相对于Hystrix是轻量级的。同时resilience4j的模块化程度更好,很容易的扩展附加模块。
目前Resilience4j包括熔断(CircuitBreaker)、限流(RateLimiter)、隔离(BulkHead)、重试(Retry)、缓存(Cache)、执行时间限制(TimeLimiter)等模块及一些附加模块(Add-on modules)。
二,环境搭建
1,安装Gradle及设置
由于Resilience4j采用gradle进行编译及打包,所以我们需要下载及安装最新版本的gradle,同时在IDE中进行环境设置。Resilience4j在github上的地址: https://github.com/resilience4j/resilience4j.git clone下来及导入到IntelliJ IDEA中,设置resilience4j的gradle环境,如图:
Service directory path是放置类包的仓库。勾选Use auto-import选项,grade会对resilience4j源码进行依赖导入及编译。
2,代码调试
编译好的Resilience4j代码,如下图:
如果我们要研究circuitbreaker的源码,就可以进入到resilience4j-circuitbreaker模块中,找到单元测试类CircuitBreakerTest类,设置断点,进行代码跟踪调试了。
测试类路径在:
其中的一个测试方法如下图:
3,本系列文章重点研究源码,源码的中文注释地址:
https://github.com/Justin02180218/resilience4j 会持续完善。
至于项目中如何使用Resilience4j,请参考的官方文档:http://resilience4j.github.io/resilience4j/#_getting_started
下一篇文章《Resilience4j源码解析-2.1 CircuitBreaker模块》讲解熔断器模块。
==大家可以关注我的微信公众号,后续文章将在公众号中同步更新==