Feign 是一个声明式的 Web Service 客户端,它的目的就是让 Web Service 调用更加简单。它整合了 Ribbon 和 Hystrix,从而让我们不再需要显式地使用这两个组件。Feign 还提供了 HTTP 请求的模板,通过编写简单的接口和插入注解,我们就可以定义好 HTTP 请求的参数、格式、地址等信息。Feign 会完全代理 HTTP 的请求,我们只需要像调用方法一样调用它就可以完成服务请求。

Feign 具有如下特性:

  • 可插拔的注解支持,包括 Feign 注解和 JAX-RS 注解
  • 支持可插拔的 HTTP 编码器和解码器
  • 支持 Hystrix 和它的 Fallback
  • 支持 Ribbon 的负载均衡
  • 支持 HTTP 请求和响应的压缩

使用Feign消费服务(基于之前Eureka的服务注册中心):

1.创建服务,添加依赖和配置文件

使用Feign消费服务

使用Feign消费服务

使用Feign消费服务

主要依赖:client,web和openfeign

添加配置文件(端口7005,服务名:service-feign):

使用Feign消费服务

2.注解开启Feign的功能

使用Feign消费服务

主要注解@EnableFeignClients开启Feign的功能。​​​​​​​

3.启动并测试

添加一个接口,@FeignClient表示要调用的服务(eureka-producer)​​​​​​​

使用Feign消费服务

添加controller调用service接口​​​​​​​

使用Feign消费服务

启动服务并访问(http:localhost/7005/helloFeign?name=feign):​​​​​​​

使用Feign消费服务

使用Feign消费服务

可以看到服务注册中心的服务:​​​​​​​

使用Feign消费服务

多次刷新浏览器访问,可以看到后台控制台打印记录,轮询访问端口7001和7002的服务,

也达到了远程服务调用和负载均衡的效果(同restTemplate+Ribbon的效果)

使用Feign消费服务

使用Feign消费服务

 

相关文章: