nacos 相对于 eureka 来说功能更加强大,在搭建服务中心的时候也不同于eureka引入模块依赖运行就可以,需要独立进行安装,启动后如图:

默认账号和密码都为:nacos
在父工程 pom.xm 中引入 spring-cloud-alibaba 依赖
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.2.5.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
在服务模块 pom.xml 中引入 nacos 客户端依赖
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
在 application.yml 中添加配置信息
spring:
# 模块名称
application:
name: order-service
# nacos 注册配置
cloud:
nacos:
server-addr: localhost:8848 # nacos服务端地址
服务发现

在 application.yml 中添加配置
spring:
cloud:
nacos:
discovery:
# 集群名称
cluster-name: HZ

在 application.yml 中更改负载均衡配置
# 要调用的其它服务名
user-service:
ribbon:
# 负载均衡策略名称
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
# 集群的负载均衡-优先在同集群内进行随机负载均衡挑选实例



Nacos数据模型

在Nacos页面控制台创建新的命名空间


记住命名空间ID

在服务模块 application.yml 中进行配置
spring:
cloud:
nacos:
discovery:
namespace: e2aac347-ffc3-451b-a567-a4be0e933095 # 命名空间ID

Nacos 默认是临时实例,当某服务下的实例不存在时Nacos会主动进行该服务剔除
若为 非临时实例 时,服务下的实例不存在时Nacos不会剔除该服务,而会一直等待该服务实例的恢复
非临时实例配置:
在 application.yml 中进行配置
spring:
cloud:
nacos:
discovery:
ephemeral: false # 设置为非临时实例