Feign学习资料
工欲善其事,必先利其器,学习Feign必须要找到对应的资料,本文是个人学习过程的一个总结,学习目标是达到Feign的入门,可以完成简单的小功能,因此未寻找十分详细的教程。
在网络寻找参考教程连接如下:
Spring官网SpringCLoud中的OpenFeign:https://spring.io/projects/spring-cloud-openfeign
**B站一位老师的讲解课程(很遗憾不知道老师的名字)**https://www.bilibili.com/video/BV1v54y1R7VE?p=2&spm_id_from=pageDriver
Feign与OpenFeign
- Feign是NetFlix公司开发的一个声明式的REST调用客户端,SpringCloud基于NetFlix Feign整合了Ribbon和Hystrix两个组件,让开发更加简单。
- 核心是像调用本地方法一样调用远程方法,无感知调用HTTP请求
- OpenFeign是在Feign的基础上整合了SpringMVC的注解
入门使用
1.依赖
根据Spring官网可以看到依赖关系如下。
本文采用新建Discovery Client,然后添加OpenFeign依赖的方法添加,依赖关系如下:
``
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.添加注解
根据官网样例可以看到,只有Consumert添加了@EnableFeignClients
3.基本使用
声明式接口HelloClient,然后Autowired绑定后,直接调用
4.自己调试
按照上述步骤调试Consumer后很遗憾的没有成功在Eureka中心注册成功,出现报错:
添加依赖后解决如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
服务无法调用到,原因是服务提供者填写错误
结果:
Eureka注册中心:
通过Feign调用成功,回显成功
Feign与负载均衡
Feign本身已经做了负载均衡,不需要做任何配置