SpringCloud OpenFeign怎么远程调用


这篇文章主要介绍“SpringCloudOpenFeign怎么远程调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringCloudOpenFeign怎么远程调用”文章能帮助大家解决问题。Feign makes writing java http clients easier,这是官方给出的一个说明,本意翻译是:Feign使编写Java http客户端更容易,Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,Feign可以通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求。Feign封装了Http调用流程,更适合面向接口化的编程习惯。在服务调用的场景中,我们经常调用基于Http协议的服务,而我们经常使用到的远程调用框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Forest、Netty等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。本地调用(Local Procedure Call,简称LPC)远程调用(Remote Procedure Call,简称RPC)feign主要是为我们提供了远程调用的服务,那么什么是远程调用呢?远程调用说白了可以理解为不同服务之间方法的调用,实质上是两台主机间的网络通信 ,涉及到网络通信又必然会有序列化、反序列化,编解码等一些必须要考虑的问题,现在业界内比较流行的一些 RPC 框架,例如:Dubbo提供的是基于接口的远程方法调用,通过rpc远程调用框架,客户端只需要知道接口的定义即可调用远程服务。而feign主要就是用来简化我们发起远程调用的代码,以一个远程调用Github开放的API为
*https://api.github.com/search/repositoriesv
*
*@author:jacklin
*@since2022/6/3021:27
**/
@GetMapping(value=”/search/repositories”,produces=MediaType.APPLICATION_JSON_VALUE)
StringsearchRepositories(@RequestParam(“q”)Stringq);
}第一步: Maven pom文件中引入 OpenFeign 组件。第二步:客户端需要定义一个GitHubFeign接口,里面定义一个searchRepositories()方法,可以看到这个接口上添加了@FeignClient注解,而括号里面指定了服务名:github-client,显示声明这个接口是用来远程调用GitHub API服务的,url用来指定调用服务的全路径,其他方法路径前缀必须与url地址一致,完整的请求路径URL地址:https://api.github.com/search/repositories第三步:需要在服务启动类添加@EnableFeignClients注解,在服务启动时,Spring扫描被@FeignClints修饰的接口,基于动态代理生成本地JDK Proxy代理对象实例,然后将这些代理实例注册到Spring IOC容器中,当远程接口被调用时,由Proxy代理实例去完成真正的远程访问,并返回结果。第四步:在Controller引入GitHubFeign服务,完成远程服务调用:返回结果数据如下:可以看出,feign使得远程调用跟本地免费云主机域名方法是一样,极大的简化了rpc远程调用的方式。可以认为OpenFeign是Feign的增强版,不同的是OpenFeign支持Spring MVC注解OpenFeignFeign底层都内置了Ribbon负载均衡组件,在导入OpenFeign依赖后无需专门导入Ribbon依赖,用做客户端负载均衡,去调用注册中心服务。通过 @EnableFeignCleints触发Spring应用程序对classpath中@FeignClient修饰类的扫描。解析到 @FeignClient 修饰类后,Feign框架通过扩展Spring Bean Deifinition的注册逻辑,最终注册一个FeignClientFacotoryBean进入Spring容器Spring容器在初始化其他用到 @FeignClient 接口的类时, 获得的是FeignClientFacotryBean产生的一个代理对象Proxy。基于Java原生的动态代理机制,针对Proxy的调用,都会被统一转发给Feign框架所定义的一个 InvocationHandler,由该Handler完成后续的HTTP转换,发送、接收以及HTTP响应的工作。要想通过OpenFeign实现远程调用,就涉及到一个OpenFeign的核心注解:@EnableFeignClient,根据字面意思可以知道,该注解是开启OpenFeign的功能,一般都会被添加到我们的启动类上。Spring包扫描的大体流程:开启OpenFeign功能@EnableFeignClients,接着通过@Import(FeignClientsRegistrar.class) 这个import的方式导入FeignClientsRegistrar类,开启OpenFeign组件的加载。FeignClientsRegistrar负责Feign接口的加载,源码如下:registerFeignClients()方法会调用findCandidateComponents()方法来查找指定路径的basePackages下所有被@FeignClients注解修饰的类、接口。只保留被@FeignClient的修饰的接口。关于“SpringCloudOpenFeign怎么远程调用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: html5如何取消边框

这篇文章主要介绍了html5如何取消边框的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇html5如何取消边框文章都会有所收获,下面我们一起来看看吧。 在html5中,可以利用border属性来取消边框,该属性会在一个声明中设置所有…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/30 14:54
下一篇 03/30 14:54

相关推荐