博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenFeign--概述
阅读量:2442 次
发布时间:2019-05-10

本文共 1303 字,大约阅读时间需要 4 分钟。

OpenFeign

Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。

它的使用方法是定义一个服务接口然后在上面添加注解。 Feign也支持可拔插式的编码器和解码器。

SpringCloud对Feign进行了封装,使其支持了SpringMVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。

官网:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/#spring-cloud-openfeign

OpenFeign的功能

Feign旨在使编写Java Http客户端变得更容易。

前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多出调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。

所以,Feign在此基础上做了进一步封装,由它来帮助我们定义和实现依赖服务接口的定义。在Feign的实现在,我们只需要创建一个接口并使用注解的方式来配置它(以前是Dao接口上标注Mapper,现在是一个微服务接口上面标注一个Feign注解即可),即可完成对服务提供方的接口绑定,简化了使用SpringCloud Ribbon时,自动封装服务调用客户端的开发量。

Feign继承了Ribbon:

利用Ribbon维护了Payment的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与Ribbon不同的是,通过feign只需要定义服务绑定接口且以声明式的方法,优雅而简单的实现了服务调用。

Feign与OpenFeign区别

Feign OpenFeign
Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端。
Feign内置了Ribbon,用来做客户端的负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。
OpenFeign是SpringCloud在Feign的基础上支持了SpringMVC的注解,如@RequestMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
org.springframework.cloud
spring-cloud-starter-feign
org.springframework.cloud
spring-cloud-starter-openfeign

转载地址:http://mspqb.baihongyu.com/

你可能感兴趣的文章
雅虎邮箱 找回密码_如何恢复被遗忘的Yahoo! 密码
查看>>
最近朋友圈晒足迹足迹刷屏_如何在Android上使用私人浏览隐藏您的足迹
查看>>
人工智能alexa笑_如何在Alexa应用程序中重命名智能家居设备
查看>>
如何使用alexa_如何使用Alexa让住户宾客有更多在家的感觉
查看>>
如何将星期几放入Windows任务栏时钟
查看>>
取回Apple TV遥控器的D-Pad
查看>>
trello使用技巧_使用此免费的Chrome扩展程序将复选框添加到Trello
查看>>
outlook gmail_如何在Outlook和Gmail之间自动同步联系人
查看>>
gnome shell扩展_自行打造GNOME Shell:要安装的10个GNOME Shell扩展
查看>>
如何选择远程Minecraft主机
查看>>
minecraft_如何使用明暗器抽出Minecraft眼影
查看>>
alexa国内可以使用吗_Alexa可以通过Windows听到您的声音吗?
查看>>
mac色相轮_如何将色相灯同步到Mac或PC
查看>>
如何在Windows中监视文件和文件夹的更改
查看>>
火狐浏览器3d视图插件_使用Firefox侧视图在一个选项卡中浏览两个网站
查看>>
快速查看将在macOS Mojave中快速编辑文件
查看>>
gmail的密码要求_如何更改您的Gmail或Google密码
查看>>
在windows使用gpu_如何选择Windows 10上游戏使用的GPU
查看>>
minecraft启动器_如何使用外部编辑器编辑Minecraft地图
查看>>
什么是适用于iPhone和iPad的iOS最新版本?
查看>>