开发者学堂课程【微服务框架 Spring Cloud 快速入门:Feign是什么】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/614/detail/9359
Feign是什么
目录
一、了解Feign
二、知道Feign的作用
一、了解Feign
前面学习了Eureka 和 Ribbon,现在学习新的知识——Feign。
1、首先应该知道他是什么。
2、知道 Ribbon 有负载均衡,Feign 也带着负载均衡。
知道Feign:
读音 英【fein】 美【fein】
Vt.假装;捏造
Vi.假装;装作
什么是 Feign:
官网解释:
http://projects.spring.io/spring-cloud/spring-cloud.html#spring-cloud-feign
Feign 是一个声明式 WebService 客户端。使用 Feign 能让编写Web Service 客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持 JAX-RS 标准的注解。Feign 也支持可拔插式的编码器和解码器。 Spring Cloud 对 Feign 进行了封装,使其支持了 Spring MVC 标准注解和 HttpMessageConverters。Feign 可以与 Eureka 和 Ribbon 组合使用以支持负载均衡。
特征体系是一环扣一环。
第一要搭建一个新的目标
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableEurekaClient
@EnableFeignClients
//第二个学一个 Enable xxx(某个组件的相关的标签)
public
class
Application
{
public
static
void main(String[] args)
{
Spr ingApplication. run(Application.class,
args);
}
}
Feign是一个声明式的Web服务客户端的调用,使得编写Wbe服务客户端变得非常容易。
(接下来是重点)只需要创建一个接口,然后在上面添加注释Wbe服务客户端的调用。
参考官网:https://gjithub.com/OpenFeign/feign
打开参考官网网址,点击 Wiki,右下角里面有 Home、Custom error handling、Releasing Feign 的一些解释。
说一下前因后果:
之前大家用 ribbon 进行负载均衡,功能很强大,甚至可以自己定义算法。
Feign 是怎么出来的?
1、大部分的大家都可以介绍,直接调用微服务来进行访问。
打开前面的eclipse——
microservicedoud-consumer-dept-80[boot] [
——
DeptController
_
Consumerjav
a
复制
//private static
f
inal String REST
_
URL
_
PREFIX
=”
http://localhost:8001
”;
地址修改为面向微服务编程
privece static fin
a
l string REST
_
URL
_
PREFIX
=
”
http:/MICROSERVICECLOUD-DEFT
“;
2、大家目前都习惯面向接口,比如:webService 接口,比如 DAO接口,这个已经是大家的规范
(1)微服务名字胡德调用地址
(2)就是通过接口+注释,获得我们的调用服务,
(3)适应社区其他程序员,还是同意的面向接口编写的套路——Feign
总之只需要创建一个接口,然后在上面添加注释即可。
@Mapper
public interface DeptDao
{
}
Feign 是一个声明式的 Web 服务客户端, 使得编写Web服务客户端变得非常容易,只需要创建一个接口, 然后在上面添加注解即可。
参考官网: hts:/github.com/OpenFeign/feign
二、知道Feign的作用
Feign 旨在使编写a va Http 客户端变得更容易。
前面在使用 Ribbon+ RestTemplate 时,利用 RestTemplate 对http 请求的封装处理,形成了-套模版化的调用方法。 但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用, 所以通常都会针对每个微服务自行封装些客户端类来包装这些依赖服务的调用。Feign 在此基础 上做了进步封装, 由他来帮助定义和实现依赖服务接口的定义。在 Feign 的实现下,只需创建一个接口并使用注解的方式来配置它(以前是 Dao 接口上面标注Mapper 注解,现在是个微服务接口上面标注一个 Feign 注解即可), 即可完成对服务提供方的接口绑定,简化了使用Spring cloud Rbbon 时,自动封装服务调用客户端的开发量。
简单一句话面向服务接口调用微服务上面加上注解就是 Feign 的定义和套路。