nacos配置中心
nacos环境隔离
在nacos服务端配置命名空间
然后再服务器列表就可以看见刚配置的命名空间
添加nacos config依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
然后在客户端添加配置,重启客户端:
spring:
application:
name: order-service #服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848
cluster-name: chongqing
namespace: 1e8ecb44-4482-4ff9-9e7b-485ec739ea1c # dev环境,这里的值是命名空间的id
然后就可以在nacos服务端看见刚配置的客户端,不同命名空间的服务是不通的,一般用于开发阶段的不同环境,例如:dev,sit,uat等
配置中心
在nacos服务端:配置管理===> 配置列表===>点击“创建配置”
Data ID:配置文件名
Group:命名空间名
描述:文件的描述
命名规则:服务名+环境+配置文件后缀
客户端添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
添加新的配置文件:bootstrap.yml,并删除application.yml相同的配置。
spring:
application:
name: user-service #服务名称
profiles:
active: dev
cloud:
nacos:
config:
file-extension: yaml
group: dev
server-addr: localhost:8848
namespace: 1e8ecb44-4482-4ff9-9e7b-485ec739ea1c # dev环境,这里的值是命名空间的id
discovery:
server-addr: localhost:8848
cluster-name: chongqing
namespace: 1e8ecb44-4482-4ff9-9e7b-485ec739ea1c # dev环境,这里的值是命名空间的id
group: dev
这里就是通过application.name和profiles.active和file-extension这三个配置定位nacos配置文件的:user-service-dev.yaml
这里有一个坑,如果配置中心配置了group,那么一定要把config配置全,就像上面一样,不然配置文件不生效。
全局配置
命名规则:服务名+配置文件后缀
配置文件执行顺序
1、首先[.properties]后缀的文件会比[.yml]后缀的文件优先级高,properties文件会覆盖yml文件的相同配置。
2、在springboot项目中:
bootstrap.yml 用于 ApplicationContext 引导阶段。由父 Spring ApplicationContext 加载。定义系统级别的参数配置,这些参数一般不会变动。
application.yml 用来定义应用级别的参数配置。
application.yml配置文件会覆盖bootstrap.yml配置文件
命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件
3、springcloud项目:
nacos配置中心 > 命令行参数 > 操作系统环境变量 > 应用外的配置文件 > 应用内的配置文件
4、nacos配置中心的配置文件
环境配置>全局配置 例如:user-service-dev.yaml > user-service.yaml
总结:
配置文件优先级,但并不是加载先后顺序
user-service-dev.yaml > user-service.yaml > application.yml > bootstrap.yml