Spring Cloud Feign基于Netflix Feign 同时整合了Spring Cloud Ribbon和Spring Cloud Hytrix,除了提供两者的强大功能外,它还提供了一种声明式的web服务客户端定义方式。
在ribbon的例子中我们尝试了使用RestTemplate来实现对依赖服务的接口调用,Spring Cloud Feign在此基础上做封装,由它来帮我们定义和实现依赖服务接口的定义。
首先新建一个工程命名为feign-consumer引入eureka和feign依赖
主类通过加入@EnableFeignClients注解开启Feign的支持功能
定义helloservice 通过@FeignClient("hello-service")注解指定服务名来绑定服务
后再使用SpringMVC的注解来绑定具体该服务提供的REST接口
接着创建一个ConsumerController来实现对Feign客户端的调用
application.properties配置如下
spring.application.name=feign-consumer
server.port=9002
eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/,http://peer2:1112/eureka
启动项目测试,效果同ribbon客户端负载一致
至此通过Spring Cloud Feign以声明式的方法,优雅而简单地实现了服务调用