一、定义
Feign是Netflix开发的声明式、模板化的HTTP客户端,可帮助我们更加便捷、优雅地调用HTTP API。支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了Ribbon和Eureka,从而使得Feign的使用更加方。
二、Feign的设计架构
核心流程
Feign远程调用,核心就是通过一系列的封装和处理,将以JAVA注解的方式定义的远程调用API接口,最终转换成HTTP的请求形式,然后将HTTP的请求的响应结果,解码成JAVA Bean,放回给调用者。
Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的 Request 请求。通过Feign以及JAVA的动态代理机制,使得Java 开发人员,可以不用通过HTTP框架去封装HTTP请求报文的方式,完成远程服务的HTTP调用。
三、Feign和Ribbon调用对比
四、Feign单独使用
引入依赖
编写接口
调用
五、Spring Cloud Alibaba快速整合Feign
引入依赖
编写调用接口+@FeignClient注解
调用端在启动类上添加@EnableFeignClient注解
发起调用,像调用本地方式一样调用远程服务