Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign 注解和JAX-RS注解。Feign支持可插拔的编码器和解码器。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。服务直接的调用有了feign可谓方便许多,只需一个接口,一个注解即可调用服务。

步骤:

1、在它的pom文件引入Feign的起步依赖spring-cloud-starter-feign

Feign来调用服务_自定义

2、将服务注册到Eureka即可

Feign来调用服务_自定义_02

3、开启Feign功能

Feign来调用服务_自定义_03

4、

Feign来调用服务_负载均衡_04

5、使用Feign过程的三个坑:

(1)在接口中@GetMapping不支持,必须是@RequestMapping,然后写方法才可以。

(2)圆圈中的value必须要写。否则报错。

Feign来调用服务_自定义_05

Feign来调用服务_客户端_06

(3)

当请求对象是复杂对象时的问题:

Feign来调用服务_编码器_07

6、如何自定义feign的配置:

这个跟自定义ribbon的配置类似:

Feign来调用服务_编码器_08

7、关于使用feign时第一次总是timeout的情况解决

问题截图:

Feign来调用服务_编码器_09

问题原因:

因为hystrix的超时机制导致的,feign支持断路器的功能

问题解决:

 

Feign来调用服务_断路器_10