openfeign远程调用原理
时间: 2023-09-02 17:11:12 浏览: 55
OpenFeign是一个用于微服务项目中的服务远程调用的工具,它与Spring整合通过两个核心注解@FeignClient和@EnableFeignClients来实现。@EnableFeignClients注解用于开启OpenFeign,在启动类上添加该注解后,Spring容器将会扫描被@FeignClient注解修饰的接口,并生成相应的代理对象。
生成@FeignClient注解接口的代理对象是从FeignClientFactoryBean的getObject方法开始的。具体而言,代理对象的生成主要由ReflectiveFeign对象来实现。调用代理对象实际上就是发起http请求,请求结果会被解码并返回。因此,OpenFeign将http远程调用伪装成了本地调用,对于使用者来说,调用远程接口就像调用本地接口一样简单。
总结一下OpenFeign的工作流程:首先,通过@EnableFeignClients注解开启OpenFeign;然后,OpenFeign扫描被@FeignClient修饰的接口;接下来,根据被修饰的接口生成相应的代理对象;最后,使用代理对象发起http请求,并将请求结果解码返回给调用者。
因此,OpenFeign的远程调用原理可以概括为通过代理对象将远程调用转化为http请求,并将请求结果解码返回给调用者。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [OpenFeign的服务调用原理](https://blog.csdn.net/qq_42098875/article/details/118994449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]