SpringBoot--实战开发--Nacos配置管理(五十二)

一、Nacos配置管理简介

  Nacos 提供了动态配置服务,能让我们可以实时进行服务应用的配置变更,让配置管理变得更加高效和快捷。它基于 key/value 方式存储应用配置和其他元数据信息,为分布式系统中的外部化配置提供服务器端和客户端支持。
首先了解下 Nacos 在配置管理模块上的几个重要概念,能帮助我们更好的理解和正确的使用 Nacos 进行配置管理。

  1. 命名空间(Namespace)
    用于进行租户粒度的配置隔离,可用于对不同环境配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
  2. 配置项 (Configuration Item)
    一个具体的可配置的参数与其值,通常以 param-key=param-value 的形式存在。例如我们常配置系统的日志输出级别(logLevel=INFO|WARN|ERROR) 就是一个配置项。
  3. 配置集 (Configuration Set)
    一组相关或者不相关的配置项的集合。一个配置文件通常就是一个配置集,它可能包含了数据源、线程池、日志级别等配置项。
  4. 配置集 ID(Data ID)
    某个配置集的标识 ID,用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集。官方推荐采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则定义 Data ID 来保证全局唯一性。
  5. 配置分组(Group)
    对配置集进行分组,用于区分 Data ID 相同的配置集。默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 消息队列 Topic 配置等。

二、Maven依赖

    
        0.2.1
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            com.alibaba.boot
            nacos-config-spring-boot-starter
            ${nacos-config-spring-boot.version}
        
        
            com.alibaba.boot
            nacos-config-spring-boot-actuator
            ${nacos-config-spring-boot.version}
        
    

三、配置

  1. 启动类配置
@SpringBootApplication
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class, args);
    }
}

Nacos 控制台添加配置:
Data ID:example
Group:DEFAULT_GROUP
配置内容:useLocalCache=true

  1. 配置文件application.properties
nacos.config.server-addr=192.168.247.130:8848
# endpoint http://localhost:8080/actuator/nacos-config
# health http://localhost:8080/actuator/health
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

四、控制器类

@Controller
@RequestMapping("config")
public class ConfigController {
    @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
    private boolean useLocalCache;
    @RequestMapping(value = "/get", method = GET)
    @ResponseBody
    public boolean get() {
        return useLocalCache;
    }
}

五、配置测试

  1. 创建配置


    配置

    配置
  2. 测试


    测试

    改变配置:


    改变配置

    动态改变

六、常见问题

  1. 不能动态更新配置
    原因:只支持SpringBoot 2.0.x版本,不支持2..1.x版本
    
        2.0.3.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-dependencies
            ${spring-boot.version}
            pom
            import
        
    

你可能感兴趣的:(SpringBoot--实战开发--Nacos配置管理(五十二))