概述
- Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。
- 使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
快速入门
客户端使用方式
- 在工程中添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 编写bootstrap.yml配置文件
spring:
profiles:
active: dev #${spring.profile.active}
application:
name: consumer-user #${prefix}
cloud:
nacos:
config:
server-addr: localhost:80
file-extension: yaml #${file-extension}
- 在Nacos管理中心添加配置
把application.yml的配置移动到nacos中
DataId格式为
${prefix}-${spring.profile.active}.${file-extension}
禁用本地的配置文件
创建成功运行 控制台已经打印出了nacos的配置文件
动态刷新
nacos可以动态化添加配置,不需要重启项目就可以读取配置
示例:在nacos配置文件中添加 user
在工程中创建方法调用获取
@RefreshScope
@Value("${user.name}")
public String username;
@RequestMapping("/getusername")
public String getusername(){
return username;
}
重启项目
修改nacos配置文件,然后直接刷新浏览器
命名空间与分组
- namespace 命名空间
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置 Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。 在没有明确指定 ${spring.cloud.nacos.config.namespace} 配置的情况下, 默认使用的是 Nacos 上 Public 这个namespace
示例: 新建命名空间
在这里可以看到命名空间已经创建完成
创建配置信息
在工程中引用此命名空间
2. 分组
和命名空间一样的操作
创建分组名称
在工程中配置就行