feign集成hystrix全流程源码分析

2022/01/14 809点热度 0人点赞 0条评论

这篇文章算是对之前系列的增强,将spring启动流程、@Configuration配置加载分析feign构建与调用全流程分析hystrix源码分析 整体用两张图片串联起来。

feign 全流程分析

图片中主要分为以下几步:

  1. 从项目启动;

  2. refresh刷新上下文

  3. 解析

  4. 举例feign的装配,也可以看hystrix的装配(feign通过EnableAutoConfiguration自动装配),hystrix装配(用EnableAutoConfiguration和EnableCircuitBreaker),将FeignClient注解修饰的类包装成对应类型的BeanDefinition

  5. 加载

  6. 举例feign的加载

  7. 通过getBean 执行对应BeanDefinition的回调,通过解析注解RequestMapping生成SynchronousMethodHandler,最后通过动态代理方法名生成对应的DefaultMethodHandler

  8. 使用,通过@Autowire 根据类型获取

  9. hystrix处理包装成HystrixCommand(后续HystrixCommand的执行看hystrix的分析)

  10. RequestTemplate包装

  11. feign的负载均衡获取server

  12. 执行

hystrix分析里

  1. 从hystrix装配,扫描到@Aspect

  2. 请求执行

  3. 通过@HystrixCommand 拦截

  4. 包装成HystrixCommand

  5. 包装成HystrixCommand后如何执行

建议结合图片,自己翻代码追踪一下,然后再断点跑一下,会有很清晰的理解。图片中已将整体流程串联,以及在关键流程里使用的对象在哪里创建都用线串了起来,

文章中的图片可能不太清晰。

关注微信公众号5ycode,获取高清图片。

yxkong

这个人很懒,什么都没留下

文章评论