- 服务注册:
以商品服务item-service为例
我们把item-service注册到Nacos,步骤如下:
-
父工程需要添加Spring Cloud及Spring Cloud Alibaba的版本约束
-
因为我们安装的是2.4.0版本的nacos,Spring Boot默认使用的Nacos比该版本低,所以需要在父pom.xml中约定nacos-client版本,如下:
在item-service的pom.xml中添加依赖:
配置Nacos:在item-service的application.yml中添加nacos地址配置:
注意:修改nacos的ip和端口
最后启动服务实例,在控制台看到 Success to connect to server [192.168.101.68:8848] on start up, connectionId ...
就表示注册成功
访问nacos控制台,可以发现服务注册成功....................
- 服务发现:
以购物车发现商品服务为例cart-service
服务的消费者要去nacos订阅服务,这个过程就是服务发现,步骤如下:
- 引入依赖:
服务发现除了要引入nacos依赖以外,由于还需要负载均衡,因此要引入SpringCloud提供的LoadBalancer依赖。我们在cart-service
中的pom.xml
中添加下面的依赖:
可以发现,这里Nacos的依赖与服务注册时一致,这个依赖中同时包含了服务注册和发现的功能。因为任何一个微服务都可以调用别人,也可以被别人调用,即可以是调用者,也可以是提供者。因此,等一会儿cart-service
启动,同样会注册到Nacos
- 配置Nacos地址
在cart-service的application.yml中添加nacos地址配置:
- 使用OpenFeign调用服务
-
在消费者端即cart-service服务的pom.xml中引入OpenFeign的依赖和loadBalancer依赖:
-
根据访问接口编写OpenFeign客户端
在cart-service中,定义一个新的接口,该接口将来通过OpenFeign去访问商品服务中ItemController类的方法,所以参考商品服务的ItemController类去编写Feign接口
备注:
在业务层调用即可
最后,我们在cart-service的CartApplication启动类上添加注解,启动OpenFeign功能:
服务注册与发现和调用服务的过程总结如下: