黑马商城项目—服务注册、服务发现

服务注册

我们把item-service注册到Nacos,步骤如下

1.引入依赖

在item-service的pom.xml中添加依赖:


2.配置Nacos

在item-service的application.yml中添加nacos地址配置:


3.配置服务实例

为了测试一个服务多个实例的情况,我们再配置一个item-service的部署实例

点击ItemApplication启动类右键选择Copy Configuration

点击Add VM options 之后会弹出下面一条框,里面填写-Dserver.post=端口号

之后就可以看到两个ItemApplication启动类了


4.启动两个启动类进行测试

访问nacos控制台,可以发现服务注册成功

点击详情,可以查看到item-service服务的两个实例信息:


服务发现

服务发现的作用在于不管是服务宕机、启动,随时都能被我们感应到,随时都能拿到最新的服务列表

服务发现使用步骤和服务注册前两步一样,都是导入依赖和配置Nacos,区别在于后面需要使用到负载均衡

我们把cart-service注册到Nacos并实现服务发现步骤如下

1.引入依赖

我们在cart-service中的pom.xml中添加下面的依赖:


2.配置Nacos


3.发现并调用服务

接下来,服务调用者cart-service就可以去订阅item-serivce服务了。不过item-service有多个实例,而真正发起调用时只需要知道一个实例的地址。

因此,服务调用者必须利用负载均衡的算法,从多个实例中挑选一个去访问。常见的负载均衡算法有:

  • 随机

  • 轮询

  • IP的hash

  • 最近最少访问

这里我们可以选择最简单的随机负载均衡。另外,服务发现需要用到一个工具:DiscoveryClient;SpringCloud已经帮我们自动装配,我们可以直接注入使用:


点开cart-service中CartServiceImpl实现类,找到handCartItems,对原来的远程调用进行一个修改,之前调用时我们需要写死服务提供者的IP和端口:

但现在不需要了,我们通过DiscoveryClient发现服务实例列表 ,然后通过负载均衡算法,选择一个实例去调用:


4.启动测试


通过http://localhost:8082/doc.html路径打开购物车服务文档进行测试 ,把三个启动类日志清空好观察输出sql语句

然后到控制台去查看CartApplication和两个ItemApplication是否有sql语句输出,有则代表负载均衡成功,有一个启动类没sql语句输出则代表有问题

可以看到三个控制台都有sql语句输出,声明该服务发现成功!

相关推荐
没有bug.的程序员2 小时前
Spring Cloud Alibaba:Nacos 配置中心与服务发现的工业级深度实战
java·spring boot·nacos·服务发现·springcloud·配置中心·alibaba
九皇叔叔3 天前
【04】微服务系列 之 Nacos 注册中心(服务发现)
java·微服务·nacos·服务发现
jiayong2310 天前
Kubernetes 网络与服务发现面试题详解
网络·kubernetes·服务发现
努力也学不会java11 天前
【Spring Cloud】 服务注册/服务发现
人工智能·后端·算法·spring·spring cloud·容器·服务发现
廋到被风吹走11 天前
【配置中心】Nacos 配置中心与服务发现深度解析
开发语言·服务发现·php
MengFly_16 天前
Java广播 —如何利用广播做服务发现
java·网络·服务发现
rchmin20 天前
Nacos服务与配置管理平台介绍
架构·服务发现·配置管理
oMcLin22 天前
如何在 CentOS 7.9 上配置并调优 Docker Swarm 集群,确保跨多个节点的高效服务发现与负载均衡?
docker·centos·服务发现
喵叔哟23 天前
19.服务集成与通信
后端·docker·容器·服务发现
喵叔哟1 个月前
15.故障排查与调试
后端·docker·容器·服务发现