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

图片中主要分为以下几步:
从项目启动;
refresh刷新上下文
解析
举例feign的装配,也可以看hystrix的装配(feign通过EnableAutoConfiguration自动装配),hystrix装配(用EnableAutoConfiguration和EnableCircuitBreaker),将FeignClient注解修饰的类包装成对应类型的BeanDefinition
加载
举例feign的加载
通过getBean 执行对应BeanDefinition的回调,通过解析注解RequestMapping生成SynchronousMethodHandler,最后通过动态代理方法名生成对应的DefaultMethodHandler
使用,通过@Autowire 根据类型获取
hystrix处理包装成HystrixCommand(后续HystrixCommand的执行看hystrix的分析)
RequestTemplate包装
feign的负载均衡获取server
执行

从hystrix装配,扫描到@Aspect
请求执行
通过@HystrixCommand 拦截
包装成HystrixCommand
包装成HystrixCommand后如何执行
建议结合图片,自己翻代码追踪一下,然后再断点跑一下,会有很清晰的理解。图片中已将整体流程串联,以及在关键流程里使用的对象在哪里创建都用线串了起来,
文章中的图片可能不太清晰。
关注微信公众号5ycode,获取高清图片。
原文作者:5ycode;如有侵权,请联系管理员删除。