一、nacos介绍
1.动态配置
配置文件发布在nacos服务上,在配置变更时,不需要重新部署项目
2.服务的发现与管理
服务生产者和消费者,生产者provider,消费者consumer,注册中心nacos,生产者和消 费者都会去nacos中注册,nacos匹配成功后就可以正常调用
3.动态dns
二、软件安装
链接: https://pan.baidu.com/s/1Wcp87AwfLgta3yuUEG68mg?pwd=wx9c 提取码: wx9c
安装后打开startup.cmd就可以使用
默认地址为localhost:8848/nacos
账号密码均为nacos
三、动态配置
1.Nacos配置
Nacos分为namespace,group,dataId
Namespace一般常用于设置环境(例dev,test,pro)
group对应各个项目(例xinyang,siping)
dataId对应不同业务项目(例river,main,project)
1.创建命名空间
2.创建dataId和group
2.代码中使用
引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
注意:springboot2.4.x以上的版本,需要加入下面的依赖,支持对bootstrap.yml的加载
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.0</version>
</dependency>
创建bootstrap.yml文件
spring:
profiles:
active: dev
cloud:
nacos:
username: nacos #账号
password: nacos #密码
server-addr: 127.0.0.1:8848 #nacos服务地址
discovery: #集群服务信息
cluster-name: jiqun #集群名称
namespace: ${spring.profiles.active} #注册的服务命名空间名称 dev
group: ${spring.application.name} #注册的服务的分组名称 demo
config: #配置信息
namespace: ${spring.profiles.active} #我们在nacos中创建的空间名称
group: ${spring.application.name} #nacos配置文件所选择的group
prefix: ${spring.application.name} #项目前缀
file-extension: yaml #读取nacos配置文件后缀
refresh-enabled: true #修改后自动加载
timeout: 3000
启动项目成功,使用了nacos中的端口设置
3.加载顺序
配置文件的加载顺序
1.项目里的执行顺序
spring-boot-starter-parent里配置的加载顺序是yml,yaml,properties
2.项目和nacos配合使用
1.先执行项目里的配置文件
bootstrap.yml>bootstrap.yaml>bootstrap.properties>
2.执行nacos里的配置文件
nacos里的配置文件执行顺序
${spring.application.name}-${profile}.${file-extension:properties}
${spring.application.name}.${file-extension:properties}
${spring.application.name}
extensionConfigs nacos.yml
3.项目里的配置文件
application.yml>application.yaml>application.properties
四、nacos配置文件介绍
1.Nacos配置
启动单个nacos时设置为standalone,需要使用集群时需要改为cluster
2.Nacos和数据库
Nacos里内置了小型的数据库,如果是大型的配置环境需要将配置文件里的数据库打开
Server.port是当前的nacos端口号,db.num表示使用了一个数据库,可以配置多个数据库
按db.url.0,db.url.1设置多个保证高可用
数据库表脚本
3.Nacos集群配置
打开nacos.inetutils.ip-address
修改cluster.conf.example文件
注意:修改完成后将后缀.example去掉,不然会启动报错
修改完成后,需要将bin目录下的启动文件改为集群模式cluster
保存配置文件后,将nacos文件复制3份,分别修改复制出的nacos文件里,conf下的application.properties文件里的端口为8849和8850
分别启动成功
修改项目里的配置文件
测试nacos集群
@RestController
@RequestMapping("/nacos")
public class TestController {
@Value("${user.name}")
private String name;
@Value("${user.age}")
private String age;
@GetMapping("/get")
public String getData() {
return name + ":" + age;
}
}
关掉2个nacos后还可以正常访问
注意:修改配置文件后,重启项目未生效,可以重启nacos服务
4.Service集群配置
要求服务名称一样,创建2个服务,设置不同的端口