承接上一篇文章,我们来继续学习nacos的另一个功能,配置中心。
新建配置
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profiles.active}.${file-extension}
-
prefix 默认为 spring.application.name
的值,也可以通过配置spring.cloud.nacos.config.prefix
来配置。 -
spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。注意:当 spring.profiles.active 为空时,对应的连接符 – 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
-
file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension
来配置。目前只支持 properties 和 yaml 类型。
配置@RefreshScope
通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新:
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value("${useLocalCache:false}")
private boolean useLocalCache;
@RequestMapping("/get")
public boolean get() {
return useLocalCache;
}
}
测试代码
主要代码
@RefreshScope
@RequestMapping(value = "/producer")
@RestController
public class ProducerController {
@Value(value = "${server.port}")
private String port;
@Value("${ossa.info}")
private String config;
@GetMapping("/{id}")
// @SentinelResource(value = "producerById", fallback = "error")
public ResponseEntity<ProducerVO> producerById(@PathVariable(value = "id") String id) {
ProducerVO producerVO = new ProducerVO();
producerVO.setId(id);
producerVO.setPort(port + ": " + UUID.randomUUID().toString());
producerVO.setConfigBody(config);
return ResponseEntity.ok(producerVO);
}
spring:
application:
name: ossa-service-producer
cloud:
nacos:
# docker启动nacos:
# docker run --name mynacos -itd -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:v2.0.3
discovery:
server-addr: ip:8848
namespace: 78e10147-ff76-4e56-8b19-2e2bbd39f750
group: OSSA_GROUP
config:
server-addr: ip:8848
file-extension: yml
refresh-enabled: true
group: OSSA_GROUP
namespace: 78e10147-ff76-4e56-8b19-2e2bbd39f750
配置nacos

发布新配置


测试

原文始发于微信公众号(步尔斯特):【微服务|Nacos】快速实现nacos的配置中心功能,并完成配置更新和版本迭代
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48184.html