Hystrix核⼼源码剖析

springboot装配、⾯向切⾯编程、RxJava响应式编程的知识等等,我们剖析下主体脉络。
 
分析⼊⼝:@EnableCircuitBreaker注解激活了熔断功能,那么该注解就是Hystrix源码追踪的⼊⼝.
  • @EnableCircuitBreaker注解激活熔断器
  • 查看EnableCircuitBreakerImportSelector类

 

 

  • 继续关注⽗类 SpringFactoryImportSelector

 

 
spring.factories⽂件内容如下
 
会注⼊org.springframework.cloud.netflflix.hystrix.HystrixCircuitBreakerConfifiguration
 
关注切⾯:com.netflflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect
 
 
重点分析环绕通知⽅法
 

 

 

GenericCommand中根据元数据信息重写了两个很核⼼的⽅法,⼀个是run⽅法封装了对原始⽬标⽅法的调⽤,另外⼀个是getFallBack⽅法它封装了对回退⽅法的调⽤另外,在GenericCommand的上层类构造函数中会完成资源的初始化,⽐如线程池GenericCommand —>AbstractHystrixCommand—>HystrixCommand—>AbstractCommand
 

 

 

接下来回到环绕通知⽅法那张截图
 
进⼊execute执⾏这⾥

 

 

另外,我们观察,GenericCommand⽅法中根据元数据信息等重写了run⽅法(对⽬标⽅法的调⽤),getFallback⽅法(对回退⽅法的调⽤),在RxJava处理过程中会完成对这两个⽅法的调⽤。

 

 

 

 

posted @ 2023-02-22 10:12  Jie0525  阅读(19)  评论(0编辑  收藏  举报