1、如何使用?

  1. 首先,调用以及被调用的微服务双方都应该被注册到注册中心

  2. Spring Boot启动APP上标注 @EnableFeignClients注解。

  3. 编写远程调用接口并标注@FeignClient注解。(括号内添加所要调用的微服务名称)

  4. 接口中的方法为实际想要调用的服务的方法签名,并使用@PostMapping注解映射为一个post类型的HTTP请求。

2、实现远程调用的原理?(新浪)(百度)

核心原理就是通过一系列的封装和处理,将以Java注解的方式定义的远程调用API接口,最终转化为HTTP的请求与响应结果。

从上图可以看到,Feign通过处理注解将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的 Request 请求。

  1. 微服务启动时,feign对添加了@FeignClient的接口扫描,创建远程接口的本地JDK Proxy代理实例。然后注入到Spring IOC容器中。当远程接口的方法被调用,由Proxy代理实例去完成真正的远程访问,并且返回结果。

  2. Feign的方法处理器 MethodHandler 。它用来解析方法上的url,以及@

更多推荐

大厂面试真题10-Spring Cloud 组件 Open Feign相关问题