赞
踩
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
微服务中如何锁定 Nacos Server 中的配置⽂件(dataId)
通过 Namespace + Group + dataId 来锁定配置⽂件, Namespace不指定就默认public, Group不指定
就默认 DEFAULT_GROUP
dataId 的完整格式如下
prefix 默认为 spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix 来配置。
spring.profile.active 即为当前环境对应的 profile。 注意:当 spring.profile.active
为空时,对应的连接符 - 也将不存在,
dataId 的拼接格式变成
p
r
e
f
i
x
.
{prefix}.
prefix.{fileextension}file-exetension 为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension 来配置。⽬前只⽀持 properties 和 yaml类型
示例:
application:
name: sca-edu-service-resume
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
config:
server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
namespace: e70a7f62-8dd5-4ac8-bf62-03ac7fa01706
file-extension: yaml
group: DEFAULT_GROUP
@RestController @RefreshScope public class ConfigController { @Value("${mysql.url}") private String mysqlUrl; @Value("${edu.message}") private String eduMessage; @RequestMapping("/config") public String viewconfig(){ System.err.println("mysqlUrl "+mysqlUrl); System.err.println("eduMessage "+eduMessage); return mysqlUrl+"\n"+eduMessage; } }
访问http://localhost:8100/config
同时修改nacos中的配置信息,
再次访问
http://localhost:8100/config,发现已经实时更新
application: name: sca-edu-service-resume cloud: nacos: discovery: server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850 config: server-addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850 namespace: e70a7f62-8dd5-4ac8-bf62-03ac7fa01706 file-extension: yaml group: DEFAULT_GROUP extension-configs[0]: data-id: abc.yaml group: DEFAULT_GROUP refresh: true extension-configs[1]: data-id: def.yaml group: DEFAULT_GROUP refresh: true #开启扩展dataId的动态刷新
@RestController @RefreshScope public class ConfigController { @Value("${mysql.url}") private String mysqlUrl; @Value("${edu.message}") private String eduMessage; @Value("${abc.test}") private String abcTest; @Value("${def.test}") private String defTest; @RequestMapping("/config") public String viewconfig(){ System.err.println("mysqlUrl "+mysqlUrl); System.err.println("eduMessage "+eduMessage); System.err.println("abcTest "+abcTest); System.err.println("defTest "+defTest); return mysqlUrl+"\n"+eduMessage+"\n ===>"+abcTest+"\n==>"+defTest; } }
优先级:根据规则⽣成的dataId > 扩展的dataId(对于扩展的dataId, [n] n越⼤优先级越⾼)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。