1.在父工程中添加spring-cloud-alibaba的管理依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
2.添加nacos的客户端依赖
<!-- nacos客户端依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
3.修改客户端和服务端模块中的yaml文件,添加nacos地址
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
注意:启动nacos时要先开启数据库,不然会报错!!!
服务集群配置
根据集群进行负载均衡
在order-service中设置负载均衡的IRule为NacosRule,这个规则会优先寻找与自己同集群的服务
userservice: #要调用的服务应用的application: name:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
根据权重负载均衡
Nacos环境隔离-namespace
创建好命名空间之后,修改order-service中的yaml文件,如下:
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
namespace: a4037e4f-db04-44cd-9542-e9fa4991c2c6 # dev环境
Nacos注册中心细节分析
服务注册到Nacos,配置为临时或非临时实例的方式如下:
spring:
cloud:
nacos:
discovery:
ephemeral: false # 是否是临时实例
nacos和eureka的异同?
Nacos配置管理
Nacos配置拉取及实现配置文件的热更新
1.引入Nacos的客户端管理依赖
<!--nacos的配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.在userservice中的resource目录中新建bootstrap.yaml文件,该文件的优先级高于applicatiom.yaml文件
spring:
application:
name: userservice
profiles:
active: dev # 环境
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
config:
file-extension: yaml # 文件后缀名
热更新的两种实现方式:
方式一:在@value注入的变量所在类上添加注解@RefreshScope
方式二:使用@ConfigurationProperties注解
多环境配置共享问题
优先级:[服务名]-[环境].yaml>[服务名].yaml>本地配置
Nacos集群搭建