声明式服务调用:SpringCloud Feign

背景

它基于Netflix Feign实现,整合了SpringCloud Ribbon与SpringCloud Hystrix。除了提供这两个强大的功能以外,还提供了一种声明式的web服务客户端定义方式。我们只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。Feign使得java HTTP客户端编写变得更为方便。

RestTemplate的弊端

通过RestTemplate调用API大致代码如下:

RestTemplate
但是当URL有多个参数时,就会变得很低效,比如请求这样的URL:http://localhost:8010/search?name=张三&username=account1&age=20,就要把参数放入map中:

Feign使用

  • 添加Feign依赖:
    依赖
  • 启动类上添加注解@EnableFeignClients
  • 创建一个Feign接口,并添加@FeignClient注解:
    创建接口
  • 调用Feign接口:
    调用接口

Feign的重试机制

Feign中实现了请求的重试机制,当请求超过指定的时间后会启动请求重试机制,有以下两个重要的参数:

  • MaxAutoRetries:尝试访问首选实例的次数
  • MaxAutoRetriesNextServer:尝试更换实例进行重试的次数

总结

其实通过Feign封装了HTTP调用服务方法,使得客户端像调用本地方法那样直接远程服务的方法

你可能感兴趣的:(声明式服务调用:SpringCloud Feign)