一,Feign出现的背景.
服务消费方基于rest方式请求服务提供方的服务时,一种直接的方式就是自己拼接url,
拼接参数然后实现服务调用,但每次服务调用都需要这样拼接,代码量复杂且不易维护,此时Feign诞生。
=========================================================================
二,Feign是什么
Feign 是一种Web服务客户端,底层封装了对Rest技术的应用,
通过Feign可以简化服务消费方对远程服务提供方法的调用实现。
=========================================================================
三,@FeignClient注解的作用是什么?
告诉Feign Starter,在项目启动时,为此注解描述的接口创建实现类-代理类。
=========================================================================
四,@EnableFeignCleints 注解的作用是什么?
描述配置类,告诉springcloud,启动 Feign Starter 组件。
=========================================================================
五,Feign 调用过程分析
1)通过 @EnableFeignCleints 注解告诉springcloud,启动 Feign Starter 组件。
2) Feign Starter 在项目启动过程中注册全局配置,扫描包下所由@FeignClient注解描述的接口,
然后由系统底层创建接口实现类(JDK代理类),并构建类的对象,然后交给spring管理(注册 IOC 容器)。
3) 接口被调用时被动态代理类逻辑拦截,将 @FeignClient 请求信息通过编码器生成 Request对象,
基于此对象进行远程过程调用。
4) 请求对象经Ribbon进行负载均衡,挑选出一个健康的 Server 实例(instance)。
5) 通过 Client 携带 Request 调用远端服务返回请求响应。
6) 通过解码器生成 Response 返回客户端,将信息流解析成为接口返回数据。
=========================================================================
Feign相关知识点
最新推荐文章于 2022-11-04 11:58:19 发布