使用nacos作为配置中心
- 在项目的bootstrap.yml文件中配置配置中心的地址、group、data-id、文件后缀。
- 自动刷新使用@Value(“${name}”)的值需要配合@RefreshScope注解使用。
- 自动引用配置文件为{spring/application.name}.{file-extension:properties}和 s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name−{profile}.${file-extension:properties}。如果配置spring.profiles.active则自动引入两个配置文件。没有配置则仅引入第一个配置文件。
- 支持引用指定的其他配置文件。如下:
spring:
profiles:
## 使用哪个配置文件
active: dev
cloud:
nacos:
config:
## 注册地址
server-addr: zk01:8848
## 配置文件后缀
file-extension: yaml
## 配置所在的组
group: DEFAULT_GROUP
## 配置归属命名空间
# namespace:
## 包含的其他配置文件
ext-config:
- data-id: test.yaml
group: DEFAULT_GROUP
file-extension: yaml
## 是否自动刷新配置文件
refresh: true
- data-id: test01.yaml
group: DEFAULT_GROUP
file-extension: yaml
discovery:
server-addr: zk01:8848
java
@RefreshScope
@RestController
@RequestMapping("v1/test")
public class TestController
{
@Value("${name}")
private String name;
@Value("${age}")
private String age;
@Value("${addr}")
private String addr;
@Value("${sex}")
private Integer sex;
@GetMapping("/name")
public String getName(){
return name+":"+age+":" +addr+":" +sex;
}
}
Nacos服务配置数据模型
- **命令空间:**是group的集合。不同的命名空间下可以有重复的group或Data-id配置。
- group: 是data-id的集合,不同的group下可以有重复的data-id配置。
- Data-id: 某个配置信息集合的id。是配置数据的最小集合
定义要获取配置文件的方式有三种。
- 使用默认命名空间public和默认组DEFAULT_GROUP以及自定义data-id。
- 使用默认的命令空间和自定义的组MY_FROUP以及自动以data-id
- 使用自定义的命名空间(这里需要配置的是命名空间的编码不是名称)和自定义组MY_GROUP以及自定义的data-id。
- 使用不同的active配置后缀可以区分开发、测试及生产环境配置信息。
nacos配置NacosRule负载均衡策略后支持,同一集群优先负载。
配置方式:
spring.cloud.nacos.discovery.cluster-name=zhengzhou
服务端和客户端都需要此配置。