【微服务|Nacos】快速实现nacos的配置中心功能,并完成配置更新和版本迭代


承接上一篇文章,我们来继续学习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

在这里插入图片描述

发布新配置

在这里插入图片描述

在这里插入图片描述

测试

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CSDN_SAVIOR/article/details/125298230