首先:我的nacos版本是2.3.1,本说明的操作环境是windows11
nacos与eureka的区别
nacos的权重:
权重区间是0-1,0是权得最低,1是权重最高。权重越高,服务访问的次数越多,权重越低,服务的访问次数越少。如将权重调为0,则服务不会被调用到。
默认权重是1;
操作方法:在nacos的控制台中设置。
命名空间:namespace
用来隔离服务。不同环境的服务互相不可见,也就是如果想让服务可见,就要将服务放在同一个环境 中。
默认的命名空间是public。
临时实例与非临时实例
配置统一管理,
一、将配置文件交给nacos管理
在nacos的控制台的配置管理中添加。
添加的是会有变化的配置内容,不是yml文件中的全部内容。
data ID:配置方式:服务名称_开发环境.后缀,后缀一般是yaml。
使用:
1、项目中加入nacos-config依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、创建bootstrap.yml文件(名称不可错误), 内容如下
spring: application: name: userservice #服务的名称 profiles: active: dev #服务的环境 cloud: nacos: server-addr: localhost:8848 #nacos的地址 config: namespace: ba8f1851-b52b-479a-89d2-b5500a90520e #命名空间 ,在控制台设置,此处是dev环境的id file-extension: yaml #文件后缀 server-addr: ${spring.cloud.nacos.server-addr}
注:${spring.application.name}+"-"+${profiles.active}+"."+${cloud.nacos.config.file-extension}组成的字符串与控制台中的data Id要一致。如上图。
二、配置热更新
1、在注入配置信息的类中,添加@RefreshScope注解,来属性刷新,nacos中的配置管理
2、自定义configrationproperties文件
三、多环境共享配置
1、如何实现多环境共享配置
在控制台中定义一个不区分环境的配置文件。以上图为例:
图中定义的是dev环境的配置文件,
多环境的配置文件则可以配置成userservice.yaml,nacos会自动根据环境进行区分;
2、多个环境有相同的配置元素的优先级:
区分环境的配置文件 > 多环境配置文件 > 本地配置环境
NACOS的集群配置
1、首先创建一个数据库,并命名为nacos;建表的sql在nacos的conf目录中有,文件名是mysql-schema.sql
2、修改文件
将conf目录下的cluster.conf.example修改为cluster.conf,也就是将example去掉。
修改cluster.conf的内容:增加服务器的ip地址以及端口号
如:127.0.0.1:8843
3、将nacos目录复制。想添加几个机器就复制几份,同时修改application.properties文件中的内容。共有以下几个地方要修改:
1)、server.port 这是服务的端口号;
2)、数据库配信息
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0= XXX #数据库的用户名
db.password.0=XXX #数据库的密码