Nacos配置管理

2023-12-24 10:27:50

Nacos除了可以做注册中心,同样可以做配置管理来使用。

同一配置管理

当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。

在nacos中添加配置文件?

在配置管理-配置列表中,点击加号,填写对应的表单

从微服务拉取配置

引入nacos-config依赖

在对应的服务中,引入nacos-config的客户端依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

添加bootstrap.yaml

在对应的服务的resources中添加一个bootstrap.yaml文件,内容如下:

spring:
  application:
    name: userservice # 服务名称
  profiles:
    active: dev #开发环境,这里是dev 
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地址
      config:
        file-extension: yaml # 文件后缀名

读取nacos配置

在服务中的Controller中添加业务逻辑,读取pattern.dateformat配置:

    @Value("${pattern.dateformat}")
    private String dateformat;
    
    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

配置热更新

修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新

方式一:在@Value注入的变量所在类上添加注解@RefreshScope:

@RestController
@RequestMapping("/user")
@RefreshScope
public class UserController {

    @Value("${pattern.dateformat}")
    private String dateformat;


    @GetMapping("/now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }
}

方式二:使用@ConfigurationProperties注解代替@Value注解。

在服务中,添加一个类,读取patterrn.dateformat属性:

@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
}

在Controller中使用这个类代替@Value

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private PatternProperties patternProperties;

    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
    }
}

注意事项:

  1. 配置文件的命名和存放位置要符合Nacos的要求。Nacos默认将配置文件按照dataId进行存储,所以要确保dataId的唯一性,同时要遵循一定的命名规范。

  2. 配置文件的格式要正确。Nacos支持多种配置文件格式,如properties、yaml、json等。要确保配置文件的格式正确且能被Nacos解析。

  3. 配置文件的内容要根据场景进行合理的划分。可以将具有共同特性的配置项放在同一个配置文件中,并遵循一定的层级关系,以方便管理和维护。

  4. 配置文件的修改要谨慎。一旦配置文件被修改后,可能会影响系统的正常运行。在修改配置文件时,要确保修改的内容是正确的,并且要进行相应的测试和验证。

  5. 配置文件的权限管理要合理设置。Nacos支持配置文件的权限管理,可以根据不同用户或角色设置不同的权限,以保证配置文件的安全性。

  6. 配置文件的版本管理要做好。Nacos支持配置文件的版本管理功能,可以方便地进行配置文件的回滚和恢复。在管理配置文件时,要注意及时备份和管理版本。

文章来源:https://blog.csdn.net/weixin_49564779/article/details/135128800
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。