Nacos配置的多文件加载与共享配置方式

 更新时间:2022年11月23日 08:59:47   作者:翟永超  
这篇文章主要介绍了Nacos配置的多文件加载与共享配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Nacos配置的多文件加载与共享配置

思考一个问题,现实开发中会遇到这样一个场景,我们把应用拆分成到多个配置文件中,那么Nacos怎么管理多个配置文件?

加载多个配置

我们已经知道Spring应用对Nacos中配置内容的对应关系是通过下面三个参数控制的:

  • spring.cloud.nacos.config.prefix
  • spring.cloud.nacos.config.file-extension
  • spring.cloud.nacos.config.group

默认情况下,我们使用的方式:Data ID=${spring.application.name}.properties Group=DEFAULT_GROUP的配置。

例如:现在有这样需求:我们想要对所有应用的Actuator模块以及日志输出做统一的配置管理。

最简单的实现方式应用相关配置Actuator.properties,日志log.properties 。我们通过拆分这两类的配置,现在需要将其共享

第一步:

在Nacos中创建Data ID=actuator.propertiesGroup=DEFAULT_GROUPData ID=log.propertiesGroup=DEFAULT_GROUP的配置内容。

配置文件

第二步:

在Spring Cloud应用中通过使用spring.cloud.nacos.config.ext-config参数来配置要加载的这两个配置内容,比如:

spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[1].refresh=true

可以看到:

  • spring.cloud.nacos.config.ext-config : 置是一个数组List类型。每个配置中包含三个参数:data-idgrouprefresh
  • refresh : 参数控制这个配置文件中的内容时候支持自动刷新,默认情况下,只有默认加载的配置才会自动刷新,对于这些扩展的配置加载内容需要配置该设置时候才会实现自动刷新。

共享配置

通过上述的加载集合的方式实际上已经可以做到共享配置文件了。Nacos中还提供了另外一个便捷的配置方式

spring.cloud.nacos.config.shared-dataids=actuator.properties,log.properties
spring.cloud.nacos.config.refreshable-dataids=actuator.properties,log.properties
  • spring.cloud.nacos.config.shared-dataids: 参数用来配置多个共享配置的Data Id,多个的时候用用逗号分隔
  • spring.cloud.nacos.config.refreshable-dataids : 参数用来定义哪些共享配置的Data IdData Id在配置变化时,应用中可以动态刷新,多个``之间用逗号隔开。如果没有明确配置,默认情况下所有共享配置都不支持动态刷新

配置加载的优先级

当我们加载多个配置的时候,如果存在相同的key时,我们需要深入了解配置加载的优先级关系。

在使用Nacos配置的时候,主要有以下三类配置:

  • 通过spring.cloud.nacos.config.shared-dataids定义的共享配置
  • 通过spring.cloud.nacos.config.ext-config[n]定义的加载配置
  • 通过内部规则(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group这几个参数)拼接出来的配置

要弄清楚这几个配置加载的顺序,我们把这几个配置加到应用上,观察日志

spring.cloud.nacos.config.ext-config[0].data-id=actuator.properties
spring.cloud.nacos.config.ext-config[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.shared-dataids=log.properties
spring.cloud.nacos.config.refreshable-dataids=log.properties

加载顺序

我们通过日志可以看到加载顺序:A < B < C

参考资料:Nacos官方文档

无法加载nacos配置中心的配置

在bootstrap.properties文件中对于nacos的地址配的有问题,由于idea的提示没仔细看应该配nacos的config地址,而不是discovery地址,虽然只有一点差距,但是检查起来真难

spring.cloud.nacos.config.server-addr=

写成了

spring.cloud.nacos.discovery.server-addr=

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Mybatis框架增删查改与核心配置详解流程与用法

    Java Mybatis框架增删查改与核心配置详解流程与用法

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO为数据库中的记录
    2021-10-10
  • jvm-jstack常用的用法示例

    jvm-jstack常用的用法示例

    jstack 是一个常用的用于分析 Java 进程的工具。它可以显示 Java 进程中所有线程状态和堆栈信息,帮助定位 Java 进程中的问题,这篇文章主要介绍了jvm-jstack常用的用法示例,需要的朋友可以参考下
    2023-06-06
  • SpringBoot3.x中自定义开发通用SDK的实现

    SpringBoot3.x中自定义开发通用SDK的实现

    本文介绍了SpringBoot和Maven创建自定义的SDK,包括创建项目、修改配置、编写配置类、设置配置文件、构建Jar包等,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • maven国内镜像配置的方法步骤

    maven国内镜像配置的方法步骤

    这篇文章主要介绍了maven国内镜像配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • MyBatis-Plus联表查询以及分页代码实例

    MyBatis-Plus联表查询以及分页代码实例

    在开发中遇到了一个问题,需要进行联表查询并进行分页,因为不想自己来写分页,所以还是依靠MybatisPlus来实现想要的功能,下面这篇文章主要给大家介绍了关于MyBatis-Plus联表查询以及分页的相关资料,需要的朋友可以参考下
    2023-06-06
  • 配置java环境变量(linux mac windows7)

    配置java环境变量(linux mac windows7)

    本文给大家详细总结介绍了Linux、MAC以及Windows下配置java环境变量的方法,非常的细致全面,有需要的小伙伴可以参考下
    2015-11-11
  • java Spring AOP详解及简单实例

    java Spring AOP详解及简单实例

    这篇文章主要介绍了java Spring AOP详解及简单实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • springboot源码中this::selfInitialize怪异用法的含义解析

    springboot源码中this::selfInitialize怪异用法的含义解析

    这篇文章主要介绍了springboot源码中this::selfInitialize怪异用法的含义解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Spring Boot实现图片上传功能

    Spring Boot实现图片上传功能

    这篇文章主要为大家详细介绍了Spring Boot实现图片上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • mybatis的Configuration详解

    mybatis的Configuration详解

    这篇文章主要介绍了mybatis的Configuration详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论