Resilience4j源码解析-2.1 CircuitBreaker模块

一,CiruitBreaker(熔断器)模块总体介绍

Resilience4j的CircuitBreaker主要由6个部分组成:管理熔断器实例的注册容器、熔断器的相关配置、熔断器的各种状态、触发熔断器状态变化的指标、熔断器行为变化产生的事件以及熔断器本身。

它们之间的基本调用关系如下图:

二,CiruitBreaker模块各部分详解

源码位置如下图:

1,CircuitBreakerRegistry(熔断器容器)

CircuitBreakerRegistry接口的实现类InMemoryCircuitBreakerRegistry在内部使用ConcurrentHashMap容器来存储CircuitBreaker实例,保证了并发安全及原子性。通过CircuitBreakerRegistry可以创建新的CircuitBreaker实例及检索创建的CircuitBreaker实例。

需主要关注的源码如下:

注意:在CircuitBreakerRegistry接口中使用static方法实现了线程安全的单例模式。

在InMemoryCircuitBreakerRegistry实现类中,主要做了2件事:创建了ConcurrentHashMap实例及调用CricuitBreaker.of(...)方法创建CircuitBreaker实例。

下一篇文章《Resilience4j源码解析-2.2 CircuitBreaker模块》讲解熔断器配置部分。

源码的中文注释地址:https://github.com/Justin02180218/resilience4j


==大家可以关注我的微信公众号,后续文章将在公众号中同步更新==

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,394评论 11 349
  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 12,338评论 6 86
  • (git上的源码:https://gitee.com/rain7564/spring_microservices_...
    sprainkle阅读 9,457评论 13 33
  • 早上看杨校长发的一个朋友圈略有感悟,小试笔一下写点小感。 陶行知先生曾经说过:“校长是一个学校的灵魂。学校...
    杨仁珮001阅读 359评论 0 0
  • 当爱人不相识 歌声蹉跎年少 故事发生 褪去一身稚骜 当故人不相认 摘下香烟和表 大病一场 点燃风华正茂 ​​​
    KingLeo丶76阅读 337评论 0 0