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 返回客户端,将信息流解析成为接口返回数据。

你可能感兴趣的:(spring,java)