1、如何使用?
-
首先,调用以及被调用的微服务双方都应该被注册到注册中心。
-
Spring Boot启动APP上标注
@EnableFeignClients
注解。 -
编写远程调用接口并标注
@FeignClient
注解。(括号内添加所要调用的微服务名称) -
接口中的方法为实际想要调用的服务的方法签名,并使用
@PostMapping
注解映射为一个post类型的HTTP请求。
2、实现远程调用的原理?(新浪)(百度)
核心原理就是通过一系列的封装和处理,将以Java注解的方式定义的远程调用API接口,最终转化为HTTP的请求与响应结果。
从上图可以看到,Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的 Request 请求。
-
微服务启动时,feign对添加了
@FeignClient
的接口扫描,创建远程接口的本地JDK Proxy代理实例。然后注入到Spring IOC容器中。当远程接口的方法被调用,由Proxy代理实例去完成真正的远程访问,并且返回结果。 -
Feign的方法处理器
MethodHandler
。它用来解析方法上的url
,以及@
更多推荐
大厂面试真题10-Spring Cloud 组件 Open Feign相关问题
发布评论