当前位置: 首页 > news >正文

Spring Cloud Alibaba Nacos 2023.X 配置问题

文章目录

    • 问题现象(一)
    • 解决方法(一)
    • 问题现象(二)
    • 解决方法(二)
    • 问题现象(三)
    • 解决方法(三)

问题现象(一)

Spring Cloud Alibaba Nacos 2022.X 可以使用extension-configs属性读取多个nacos配置文件,配置示例文件如下:

spring:
  application:
    name: groupinnovation
	
spring.cloud.nacos:
  config:
    username: test
    password: xxx
    server-addr: 127.0.0.1:8848
    namespace: ${nacos.namespace:dev} # 可以读取环境变量配置
    group: DEFAULT_GROUP
    enabled: true # 默认为true,可以不配
    refresh-enabled: true # 默认为true,可以不配
    fileExtension: yml
    extension-configs:
      - data-id: groupinnovation-database.yml
        group: ${spring.cloud.nacos.config.group}
        refresh: true
      - data-id: groupinnovation.yml # 默认会读取(应用名一致的配置文件),手动配置方便维护
        group: ${spring.cloud.nacos.config.group}
        refresh: true

但是在2023.X版本中配置extension-configs属性会报错(启动项目也读取不到配置文件),如下图所示:
在这里插入图片描述

解决方法(一)

1、使用spring.config.import属性导入配置
2、username、password、server-addr需要改为和config同级,即用户名密码注册中心、配置中心公用。
参考spring-configuration-metadata.json,其他属性(namespace、group、refresh-enabled等)没有公用配置。

配置示例如下:

spring:
  application:
    name: groupinnovation

spring.cloud.nacos:
  username: test
  password: xxx
  server-addr: 127.0.0.1:8848
  discovery:
    namespace: ${nacos.namespace:groupinnovation-dev} # 可以读取环境变量配置
    group: DEFAULT_GROUP
  config:
    namespace: ${nacos.namespace:groupinnovation-dev} # 可以读取环境变量配置
    group: DEFAULT_GROUP
    refresh-enabled: true # 默认为true,可以不配

spring.config:
  import:
    - nacos:groupinnovation.yml
    - nacos:groupinnovation-database.yml

问题现象(二)

引入spring-cloud-starter-bootstrap依赖,并且未在bootstrap.yml中配置,启动项目报logback相关错误:

Caused by: java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[CONFIG_LOG_FILE] - 'File' option has the same value "C:\Users\xxx/logs/nacos/config.log" as that given for appender [CONFIG_LOG_FILE] defined earlier.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[CONFIG_LOG_FILE] - Collisions detected with FileAppender/RollingAppender instances defined earlier. Aborting.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[CONFIG_LOG_FILE] - For more information, please visit http://logback.qos.ch/codes.html#earlier_fa_collision
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[NAMING_LOG_FILE] - 'File' option has the same value "C:\Users\xxx/logs/nacos/naming.log" as that given for appender [NAMING_LOG_FILE] defined earlier.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[NAMING_LOG_FILE] - Collisions detected with FileAppender/RollingAppender instances defined earlier. Aborting.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[NAMING_LOG_FILE] - For more information, please visit http://logback.qos.ch/codes.html#earlier_fa_collision
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[REMOTE_LOG_FILE] - 'File' option has the same value "C:\Users\xxx/logs/nacos/remote.log" as that given for appender [REMOTE_LOG_FILE] defined earlier.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[REMOTE_LOG_FILE] - Collisions detected with FileAppender/RollingAppender instances defined earlier. Aborting.
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[REMOTE_LOG_FILE] - For more information, please visit http://logback.qos.ch/codes.html#earlier_fa_collision
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.reportConfigurationErrorsIfNecessary(LogbackLoggingSystem.java:277)

解决方法(二)

实际和LogBack配置没有任何关系,nacos相关的配置文件写在bootstrap.yml就可以了
在Spring Cloud Alibaba Nacos 2022.X没有这个问题,即写在application.yml也可以正常启动。

问题现象(三)

Spring Cloud Alibaba Nacos 2023.X,SpringBoot 3.2.X 项目引入jasypt-spring-boot-starter 2.1.1后,nacos的账号、密码信息没法解密,spring.config.import中的配置导入失败。
问题原因:连接nacos前,jasypt没有完成解密

解决方法(三)

未找到jasypt相关解决方法,从环境变量中配置nacos的密码解决。
在这里插入图片描述

相关文章:

  • 人工智能_大模型097_TRAE_AI开发工具_企业级项目开发---人工智能工作笔记0242
  • 基于SpringBoot+Vue的大学校园志愿者管理系统+LW示例参考
  • 自动化测试工具-Playwright介绍和快速实例
  • Redis 主从架构与哨兵高可用方案实操
  • 谈谈 TypeScript 中的模块系统,如何使用 ES Modules 和 CommonJS 模块?
  • 高斯数据库和ORCLE、mysql数据库的区别
  • 安装并使用conda(宏观版)
  • 【模拟】从 0 到 1:模拟算法的深度剖析与实战指南
  • /*给你一个字符串s,由若干单词组成,单词前后用一些空格隔开 单词是指由字母组成,不包含任何空字符的最大子字符串*/
  • keepalived的工作原理和脑裂
  • JWT令牌封装类/ 接口的各个请求
  • 黑马跟学.苍穹外卖.Day08
  • 【资料分享】全志科技T113-i全国产(1.2GHz双核A7 RISC-V)工业核心板规格书
  • tf1.x和tf2.x在使用上的区别和联系是什么
  • AI 原生 IDE Trae 深度体验:SSHremote 功能助力远程开发与云原生部署
  • 基于web的牙医预约管理系统(源码+lw+部署文档+讲解),源码可白嫖!
  • k8s资源管理介绍
  • 【C++指南】内存管理完全手册:new/delete
  • 修改windows npt时钟服务器
  • 工业 CPE(Customer Premises Equipment,客户终端设备)
  • 贵州茅台股东大会回应八大热点:确保茅台酒价格体系稳固,相信自我调节能力
  • 红星控股重整期间实控人被留置后续:重整草案不会修改,涉车建兴职责已调整
  • 家国万里·时光故事会|构筑中国船舰钢筋铁骨,她在焊花里展现工匠风范
  • 当“诈骗诱饵”盯上短剧
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置