上一篇集成了ZuulGateway和Eureka并进行了测试。在实际场景中,我们肯定会有很多的微服务,而他们之间可能会存在相互调用的关系,那么,如何优雅的处理服务之间的调用问题呢?接下来就是我们要解决的。
简单的说下Feign
Feign 是一个声明式REST Web服务客户端,可以处理微服务间的Web服务调用。他是使用注解加接口的形式形成去调用服务的,相对来说不是很难,有兴趣可去官方地址了解下。这里不多介绍。
如何用
这里我们还是基于之前的Spring cloud demo去改造,老规矩先附上源码地址spring cloud demo
步骤- 这里Consumer与Provider分别代表两个微服务,测试时,使用Controller通过Feign调用Provider。调用流程如下: 网关zuul -> consumer -> provider
- 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 在Consumer的启动类上增加注解,开启Feign的支持
@EnableFeignClients
- 在Consumer新增Contro