• 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

  • 相关阅读:
    站点被百度惩处应从哪些方面分析
    SVN 权限配置具体说明
    关于数组的应用
    实现键值对存储(二)——以现有键值对存储为模型
    大数据Lambda架构
    关于c++primer的一个代码错误
    怎样解决Ubuntu发热严重地问题
    【maven】pom.xml文件没错,但是项目有小红叉,Problems中可以看到错误:“Dynamic Web Module 3.0 requires Java 1.6 or newer.”
    【shiro】2.spring整合shiro,注解控制shiro用户/角色/权限And/OR,没有权限跳转到固定页面
    【shiro】使用shiro搭建的项目,页面引用js,报错:Uncaught SyntaxError: Unexpected token <
  • 原文地址:https://www.cnblogs.com/baby123/p/11984659.html
Copyright © 2020-2023  润新知