Feign
什么是Feign
Feign 的英文表意为“假装,伪装,变形”, 是一个Http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。Feign被广泛应用在Spring Cloud 的解决方案中,是学习基于Spring Cloud 微服务架构不可或缺的重要组件。
Feign解决了什么问题
封装了Http调用流程,更适合面向接口化的编程习惯。
在服务调用的场景中,我们经常调用基于Http协议的服务,而我们经常使用到的框架可能有HttpURLConnection、Apache HttpComponnets、OkHttp3 、Netty等等,这些框架在基于自身的专注点提供了自身特性。而从角色划分上来看,他们的职能是一致的提供Http调用服务。具体流程如下:
Feign是如何设计的
-
添加依赖:在maven的pom中添加feign
-
配置启用:在Application启动类中添加@EnableFeignClients注解。
-
新建feign
其中:
name:微服务的名称,一定要以eureka后台配置的保持一致。
url:可以手动指定feign的调用地址
fallback:标记容错后执行的类
在feign中定义接口的方式与正常接口并无差异,需注意参数名称等保持一致。如:
-
调用feign:在ServiceImpl中注入feign接口,正常使用即可。