使用 Spring Cloud Alibaba Nacos Config 作为配置中心

Posted by 彭超 on 2020-01-28
Estimated Reading Time 2 Minutes
Words 485 In Total
Viewed Times

什么是 Nacos Config

在分布式系统中,由于服务数量巨多,为了方便服务 配置文件统一管理实时更新,所以需要分布式配置中心组件。

Spring Cloud Alibaba Nacos ConfigSpring Cloud Config 的替代方案。

Nacos Config 的存储配置功能为分布式系统中的外部化配置提供服务器端和客户端支持,可以在 Nacos 中集中管理 Spring Cloud 应用的外部属性配置。

引入依赖

在统一依赖管理项目中继承 Spring Boot 2.0.6.RELEASE 父项目,并声明 Spring Cloud Alibaba 0.2.1.RELEASE 依赖版本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

在当前项目 pom.xml 中主要添加依赖 spring-cloud-starter-alibaba-nacos-config

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

在 Nacos 控制台中发布配置

访问 Nacos 控制台,在该页面中添加项目配置信息。

注:Nacos Config 中的配置内容不能带有注释,否则项目启动会失败。

相关配置

需要在 bootstrap.properties 中优先配置 Nacos Config 客户端。

1
2
3
4
spring.profiles.active=dev
spring.application.name=service-provider-config
spring.cloud.nacos.config.server-addr=192.168.127.132:8848
spring.cloud.nacos.config.file-extension=yaml

注:Spring Boot 配置文件的加载顺序,依次为 bootstrap.properties > bootstrap.yaml > application.properties > application.yaml

Application 入口类中添加注解 @RefreshScope 开启动态刷新配置功能。

1
2
3
4
5
6
7
8
9
10
11
12
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.context.config.annotation.RefreshScope;

@SpringBootApplication
@RefreshScope
public class ConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !