nacos 配置中心的使用

pom配置

在根pom.xml中设置

1
2
3
4
5
6
7
8
9
10
11
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

在项目中增加依赖:

1
2
3
4
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

设置配置

Nacos Config 使用 DataId 和 GROUP 确定一个配置。

1
2
3
4
5
6
7
8
Data ID:    nacos-config.properties

Group : DEFAULT_GROUP

配置格式: Properties

配置内容: user.name=nacos-config-properties
user.age=90
  • DataId 默认取 application-name,Group默认:default_group,类型后缀默认:*.properties

使用

增加bootstrap.propertie,配置文件来配置 Nacos Server 地址

1
2
3
4
5
6
spring.application.name=base-provider
spring.cloud.nacos.config.server-addr=peer1:8848,peer2:8848,peer3:8848
logging.level.com.alibaba.nacos.client.naming=error
logging.level.com.alibaba.nacos.config.log.level=error
logging.level.com.alibaba.nacos.naming.log.level=error
# 可以使用 spring.cloud.nacos.config.file-extension=yaml

这里我们使用 @Value 注解来将对应的配置注入到 HeartController 的 userName 和 age 字段,并添加 @RefreshScope 打开动态刷新功能

  • 使用方法一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@RequestMapping("/heart")
@RefreshScope
@RestController
public class HeartController {

@Value("${server.port}")
private int port;


@Value("${user.name}")
String userName;

@Value("${user.age}")
int age;

......

使用方法二:

1
2
3
4
5
6
7
8
9
10
11
12
@Component
@RefreshScope
@Data
public class NacosTestConfig {

@Value("${user.name}")
private String userName;

@Value("${user.age}")
private int age;
}

启动脚本配置文件

1
2
#!/bin/bash
nohup java -jar *.jar --spring.profiles.active=test &

更多详细文档