springCloud-Alibaba——微服务之间使用Feign进行请求调用

目录

(1)概述:

(2)引入依赖:

(3)修改启动类:

(4)创建Feign接口:

(5)修改微服务调用:

(6)启动测试:

(7)测试Feign负载均衡:

A、服务提供者多实例启动:

B、测试负载均衡:


(1)概述:

Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用 Feign 注解和 JAX-RS 注解。Feign 支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,Nacos 也很好的兼容了 Feign,默认实现了负载均衡的效果。

因此在使用springCloudAlibaba微服务的时候,强烈推荐使用Feign来作为微服务之间相互调用访问的方式。

(2)引入依赖:

因为商品微服务相当于是服务提供者,订单微服务相当于是服务消费者,只有在服务消费者中才需要访问调用服务提供者的接口,因此需要在订单微服务的pom.xml中增加Feign的依赖:

springCloud-Alibaba——微服务之间使用Feign进行请求调用

(3)修改启动类:

在启动类上增加 @EnableFeignClients 注解开启 Feign 功能。

springCloud-Alibaba——微服务之间使用Feign进行请求调用

(4)创建Feign接口:

Feign是面向接口开发的,因此先创建一个接口,通过Feign调用其它微服务所提供的接口,返回对应的信息。然后由消费者微服务项目中的controller或者service类中,通过创建项目中创建的Feign对象,然后调用对应的Feign接口方法即可完成微服务调用,就像调用本地接口一样。

springCloud-Alibaba——微服务之间使用Feign进行请求调用

(5)修改微服务调用:

修改消费者微服务项目中的controller或者service类中,通过创建项目中创建的Feign对象,然后调用对应的Feign接口方法即可完成微服务调用。

springCloud-Alibaba——微服务之间使用Feign进行请求调用

(6)启动测试:

先启动nacos中心,然后启动商品微服务、订单微服务。访问订单微服务的接口还是和原来一样可以正常的访问返回信息。因此修改Feign接口成功。

(7)测试Feign负载均衡:

A、服务提供者多实例启动:

修改商品微服务(服务提供者)的接口方法,打印一下当前实例的端口号。然后设置idea的商品微服务可以多实例启动。然后商品微服务启动一次,然后修改下server.port的值再启动一个实例,即可完成商品微服务的多实例启动。

springCloud-Alibaba——微服务之间使用Feign进行请求调用

通过查看nacos中product-server也是启动了2个实例:

springCloud-Alibaba——微服务之间使用Feign进行请求调用

B、测试负载均衡:

通过手动刷新浏览器中访问订单微服务的接口,可以查看商品微服务多个实例启动界面中,打印的服务访问接口信息,可以得出结论,调用商品微服务的多个实例是轮流访问的,实现了负载均衡。说明使用的Feign自动集成Ribbon,实现了负载均衡的效果。