章节目录:
一、配置中心概述
二、Nacos作为配置中心
三、基本使用
3.1 引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
3.2 在 bootstrap.properties
中配置 Nacos server 的地址和应用名
-
方式一:
properties
文件spring.cloud.nacos.config.server-addr=127.0.0.1:8848 # 该配置影响统一配置中心中的dataId,之前已经配置过 spring.application.name=nacos-provider
-
方式二:
yaml
文件spring: application: name: nacos-provider cloud: nacos: config: server-addr: 127.0.0.1:8848 # 默认读取.properties后缀文件,此处指定读取yaml。 file-extension: yaml
3.3 通过 Spring Cloud 原生注解 @RefreshScope
实现配置自动更新:
@RestController
@RefreshScope
public class ProviderController {
@Value("${myName}")
private String name;
@RequestMapping("hello")
public String hello(){
return "hello " + name;
}
}
3.4 新建配置
四、命名空间
4.1 创建新空间
4.2 指定空间
# 在配置中指定namespaceId
spring.cloud.nacos.config.namespace=xxxx
五、配置回滚
六、加载多配置文件
- jdbc.properties:
jdbc.url=xxxxxx
- redis.properties:
redis.url=yyyy
nacos-provider.properties默认加载,怎么加载另外两个配置文件?
在bootstrap.properties文件中添加如下配置:
spring.cloud.nacos.config.ext-config[0].data-id=redis.properties
# 开启动态刷新配置,否则配置文件修改,工程无法感知
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=jdbc.properties
spring.cloud.nacos.config.ext-config[1].refresh=true
七、配置的分组
- 默认情况下从DEFAULT_GROUP分组中读取redis.properties,如果要切换到provider分组下的redis.properties,需要添加如下配置:
# 指定分组
spring.cloud.nacos.config.ext-config[0].group=provider
- 缺点:将来每个分组下会有太多的配置文件,不利于维护。
- 建议:通过命名空间区分业务功能,分组区分环境。