• Nacos配置的多环境管理


    实现多环境管理有下面几种方式

    1.使用Data IDprofiles实现

    在 Nacos Config Starter 中,dataId 的拼接格式为

    ${prefix} - ${spring.profiles.active} . ${file-extension}  

    prefix 默认为 spring.application.name 的值,可以通过配置项 spring.cloud.nacos.config.prefix 来配置

    spring.profiles.active 为当前环境对应的 profile

      当 spring.profiles.active 为空,dataId 的拼接格式变成 ${prefix} . ${file-extension}

      当 spring.profiles.active 不为空,没找到 ${prefix} - ${spring.profiles.active} . ${file-extension},会找 ${prefix} . ${file-extension}

    file-extension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置

    eg:

    应用端配置

    server.port=8015
    spring.application.name=service-comsumer
    spring.profiles.active=dev
    
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    
    spring.cloud.nacos.discovery.enabled=true
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    spring.cloud.nacos.discovery.service=${spring.application.name}
    
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.file-extension=properties

    nacos

    service-comsumer-dev.properties

    2.使用Group实现

    group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 配置

    在Nacos中是用来对Data ID做集合管理的

    把一个环境的配置视为一个集合,那么使用不同的集合就可以实现不同环境的配置管理

    eg:

    应用端配置

    server.port=8015
    spring.application.name=service-comsumer
    spring.profiles.active=dev
    
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    
    spring.cloud.nacos.discovery.enabled=true
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    spring.cloud.nacos.discovery.service=${spring.application.name}
    
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.file-extension=properties
    spring.cloud.nacos.config.group=DEV_GROUP

    nacos

    service-comsumer.properties

    3.使用Namespace实现

     用于进行租户粒度的配置隔离。

    不同的命名空间下,可以存在相同的GroupData ID的配置。

    可通过spring.cloud.nacos.config.namespace配置

    eg:

    添加命名空间

    应用端配置

    server.port=8015
    spring.application.name=service-comsumer
    spring.profiles.active=dev
    namespace = c47dab76-4a76-4a3f-95bf-3b06caa05b41
    
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    
    spring.cloud.nacos.discovery.enabled=true
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    spring.cloud.nacos.discovery.service=${spring.application.name}
    spring.cloud.nacos.discovery.namespace=${namespace}
    
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.file-extension=properties
    spring.cloud.nacos.config.namespace=${namespace}

    应用启动后

     注:

      没设置spring.cloud.nacos.discovery.namespace,服务会在public下

    命名空间dev下的配置

    详情

    注:

      namespace的配置不是使用名称,而是使用Namespace的ID

    补充:

      对指定环境的配置,在发布脚本的启动命令中,通过-D传入系统参数的方式来动态指定,会更加灵活

      eg:

        -Dspring.profiles.active=dev

  • 相关阅读:
    maven打包
    (和)后台解析
    beetl简单阅览
    snmp在win10上安装使用
    javaMail发送邮件
    mysql 安装配置详解
    vsftpd的主配置文件详解
    linux下vi命令笔记
    linux下sed命令笔记
    linux下grep命令笔记
  • 原文地址:https://www.cnblogs.com/baby123/p/11984659.html
Copyright © 2020-2023  润新知