nacos-config配置中⼼、多环境配置、加载多配置⽂件
⼀、前⾔
在分布式系统中,由于服务数量巨多,为了⽅便服务 配置⽂件统⼀管理,实时更新,所以需要分布式配置中⼼组件。
Spring Cloud Alibaba Nacos Config 是 Spring Cloud Config 的替代⽅案。
⼆、maven引⼊相关包
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
三、配置⽂件
l配置⽂件如下:
spring:
application:
name: provider-user
cloud:
nacos:
discovery:
server-addr:127.0.0.1:8848
config:
server-addr:127.0.0.1:8848
group: DEFAULT_GROUP
file-extension: yaml
enabled:true
refresh-enabled:true
2.在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
(1)prefix:
默认为 spring.application.name 的值,也可以通过配置项 spring.fig.prefix来配置。
(2)spring.profile.active:
即为当前环境对应的 profile,详情可以参考 Spring Boot⽂档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
(3)file-exetension :
为配置内容的数据格式,可以通过配置项 spring.fig.file-extension 来配置。⽬前只⽀持 properties 和 yaml 类型。
四、测试
1.测试controller
@RestController
public class UserService {
@Value("${testname}") private String testName;
@GetMapping("getTestName") public String getTestName(){
return testName;
}
}
2.nacos新增配置⽂件
3.访问测试
4.实现配置⾃动更新
在controller添加个注解@RefreshScope即可
@RestController
@RefreshScope
public class UserService {
@Value("${testname}")
private String testName;
@GetMapping("getTestName")
public String getTestName(){
return testName;
}
}
五、多环境配置
1.通过Data ID与profile实现
(1)配置⽂件
在l增加参数 spring.profiles.active=dev
spring:
application:
name: provider-user
cloud:
nacos:
discovery:
server-addr:127.0.0.1:8848
config:
server-addr:127.0.0.1:8848
group: DEFAULT_GROUP
file-extension: yaml
enabled:true
refresh-enabled:true
profiles:
active: dev
(2)在nacos后台增加dev配置⽂件
(3)测试
(1) 配置⽂件
在l 修改group的配置
spring:
application:
name: provider-user
cloud:
nacos:
discovery:
server-addr:127.0.0.1:8848
config:
server-addr:127.0.0.1:8848
# group: DEFAULT_GROUP
group: GROUP_DEV
file-extension: yaml
enabled:true
refresh-enabled:truespringboot是啥
# profiles:
# active: dev
(2)在nacos后台增加dev配置⽂件
(3)测试
3.通过Namespace实现
(1)在nacos后台增加namespace配置⽂件
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论