前言
通过本教程的前一篇:
我们已经知道如何利用Nacos实现服务的注册与发现。接下来,我们再来掌握Nacos的另外一个重要能力:配置管理。
简介
Nacos除了实现了服务的注册发现之外,还将配置中心功能整合在了一起。通过Nacos的配置管理功能,我们可以将整个架构体系内的所有配置都集中在Nacos中存储。这样做的好处,在以往的教程中介绍Spring Cloud Config时也有提到,主要有以下几点:
- 分离的多环境配置,可以更灵活的管理权限,安全性更高
- 应用程序的打包更为纯粹,以实现一次打包,多处运行的特点
Nacos的配置管理模型与淘宝开源的配置中心Diamond类似,基础层面都通过DataId
和Group
来定位配置内容,除此之外还增加了很多其他的管理功能。类似于consul config,Nacos 是支持热加载的
快速入门
创建配置
-
新建命名空间
-
在配置列表功能页面中,点击右上角的“+”按钮,进入“新建配置”页面
其中:
Data ID
:填入nacos-provider.ymlGroup
:不修改,使用默认值DEFAULT_GROUP
配置格式
:选择YAML
配置内容
:应用要加载的配置内容,这里仅作为示例,做简单配置
创建应用
- pom文件引入nacos-config的Spring cloud依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
- 在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:
spring:
application:
name: nacos-provider
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
namespace: 31398485-c414-45d1-9f0c-426011114fa5
config:
server-addr: 127.0.0.1:8848
file-extension: yml
prefix: nacos-provider
namespace: 31398485-c414-45d1-9f0c-426011114fa5
# profiles:
# active: dev
在上面的配置中,配置了nacos config server的地址,配置的扩展名是ymal(目前仅支持ymal和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。上面的配置是和Nacos中的dataId
的格式是对应的,nacos的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix
默认为spring.application.name
的值,也可以通过配置项spring.cloud.nacos.config.prefix
来配置。spring.profile.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当spring.profile.active
为空时,对应的连接符-
也将不存在,dataId 的拼接格式变成${prefix}.${file-extension}
file-exetension
为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension
来配置。目前只支持properties
和yaml
类型。- namespace为刚才创建命名空间里的命名空间ID
-
验证配置获取和验证动态刷新
在Controller上添加 @RefreshScope 实现配置的热加载
启动工程,可以看到修改nacos配置test的配置,客户端也会动态刷新。