购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.2 为服务消费者整合Feign

前文的电影微服务是使用RestTemplate(通过整合Ribbon实现负载均衡)调用RESTful API的。本节让电影微服务使用Feign,实现声明式的RESTfulAPI调用。

1.复制项目microservice-consumer-movie,将ArtifactId修改为microservice-consumer-movie-feign。

2.添加Feign的依赖。

img

3.创建一个Feign接口,并添加@FeignClient注解。

img
img

@FeignClient注解中的microservice-provider-user是一个任意的客户端名称,用于创建Ribbon负载均衡器。在本例中,由于使用了Eureka,所以Ribbon会把microserviceprovider-user解析成EurekaServer服务注册表中的服务。当然,如果不想使用Eureka,可使用service.ribbon.listOfServers属性配置服务器列表(详见第5.4节)。

还可使用url属性指定请求的URL(URL可以是完整的URL或者主机名),例如@FeignClient(name="microservice-provider-user",ur l="http://localhost:8000/")。

4.修改Controller代码,让其调用Feign接口。

img

5.修改启动类,为其添加@EnableFeignClients注解,如下:

img

这样,电影微服务就可以用Feign去调用用户微服务的API了。

img

测试

1.启动microservice-discovery-eureka。

2.启动2个或更多microservice-provider-user实例。

3.启动microservice-consumer-movie-feign。

4.多次访问 http://localhost:8010/user/1 ,返回如下结果。

img

两个用户微服务实例都会打印类似如下的日志。

img

以上结果说明,我们不但实现了声明式的RESTAPI调用,同时还实现了客户端侧的负载均衡。 UOsA/m3RwpNbDKB++Oginu2HIGhlNclO9IhEWQ4uoz9pBdw/E+MC4U3KcdYP1MmN

点击中间区域
呼出菜单
上一章
目录
下一章
×