背景
它基于Netflix Feign实现,整合了SpringCloud Ribbon与SpringCloud Hystrix。除了提供这两个强大的功能以外,还提供了一种声明式的web服务客户端定义方式。我们只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。Feign使得java HTTP客户端编写变得更为方便。
RestTemplate的弊端
通过RestTemplate调用API大致代码如下:
Feign使用
-
添加Feign依赖:
- 启动类上添加注解@EnableFeignClients
-
创建一个Feign接口,并添加@FeignClient注解:
-
调用Feign接口:
Feign的重试机制
Feign中实现了请求的重试机制,当请求超过指定的时间后会启动请求重试机制,有以下两个重要的参数:
- MaxAutoRetries:尝试访问首选实例的次数
- MaxAutoRetriesNextServer:尝试更换实例进行重试的次数
总结
其实通过Feign封装了HTTP调用服务方法,使得客户端像调用本地方法那样直接远程服务的方法