开发者社区> 问答> 正文

Nacos配置中心还有其他哪些功能 ?

Nacos配置中心还有其他哪些功能 ?

展开
收起
1358896759097293 2021-05-18 10:51:57 10008 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    配置服务可以是普通的微服务项目,普通微服务项目改造config依赖,因为要实现配置,如简单的配置推送拉取,这是config独有的。 9.png

    配置文件定义就按照下图规则来做

    9.1.png

    关键的配置,选的活动状态是dev,dev模式就是开发环境,要保证和配置中心要统一,这里端口稍微改了,8787,通过这样一个配置,读取Nacos配置中心最新的配置数据,然后在本地做一个展示。 9.2.png 本地展示,通过拟定了一个简单动态的变量来测试,主要是定义了一个用户名,一个密码,两个变量,通过围绕注解,让它自动去加载最新的变量值。 9.3.png 启用注解,refresh主要作用自动去背后线程去拉取注册中心最新的值。 9.4.png

    默认值,一个是Java,一个是1234qwer。 9.5.png 通过接口来调用,返回最新的用户密码,所以这里面如果之前用户和密码是Java和1234qwer的话,正常配置中心推送完新的配置后,重新查询,就应该返回新的值。 正常加载bootstreap再加载 Applcation 9.6.png

    1、支持profile粒度的配置

    •spring-cloud-starter-alibaba-nacos-config 在加载配置的时 候,不仅仅加载了以dataid 为${spring.application.name}.${file-extension:properties} 为前 缀的基础配置。
    •还加载了dataid为 ${spring.application.name}${profile}.${file-extension:properties} 的基础配置。 
    •在日常开发中如果遇到多套环境下的不同配置,可以通过Spring 提供的 ${spring.profiles.active} 这个配置项来配置。 
    •spring.profiles.active=dev 
    •spring.profiles.active=test 
    •spring.profiles.active=pro
    
    

    2、支持自定义 namespace 的配置

    • 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配 置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离 等。 
    •在没有明确指定 ${spring.cloud.nacos.config.namespace} 配置的情况下, 默认使用的是 Nacos 上 Public 这个namespae。如果需要使用自定义的命 名空间,可以通过以下配置来实现: 
    •spring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519570ed34b62d7 
    •该配置必须放在 bootstrap.properties 文件中。此外 spring.cloud.nacos.config.namespace 的值是 namespace 对应的 id, id 值可以在 Nacos 的控制台获取。并且在添加配置时注意不要选择其他的 namespae,否则将会导致读取不到正确的配置。
    
    

    3、支持自定义 Group 的配置

    •在没有明确指定 ${spring.cloud.nacos.config.group} 配置的情 况下, 默认使用的是 DEFAULT_GROUP 。 
    •如果需要自定义自己的 Group,可以通过以下配置来实现: 
    •spring.cloud.nacos.config.group=DEVELOP_GROUP 
    •该配置必须放在 bootstrap.properties 文件中。并且在添加配 置时 Group 的值一定要和 spring.cloud.nacos.config.group 的配置值一致。
    
    

    4、支持自定义扩展的 Data Id 配置

    • Spring Cloud Alibaba Nacos Config 从 0.2.1 版本后,可支持自定义 Data Id 的配置。关于这部分详 细的设计可参考 这里。 一个完整的配置案例如下所示:
    • spring.application.name=opensource-service-provider 
    • spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    • # config external configuration 
    • # 1、Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新 
    • spring.cloud.nacos.config.extension-configs[0].data-id=ext-config-common01.properties
    • # 2、Data Id 不在默认的组,不支持动态刷新 
    • spring.cloud.nacos.config.extension-configs[1].data-id=ext-config-common02.properties 
    • spring.cloud.nacos.config.extension-configs[1].group=GLOBALE_GROUP
    • # 3、Data Id 既不在默认的组,也支持动态刷新 
    • spring.cloud.nacos.config.extension-configs[2].data-id=ext-config-common03.properties 
    • spring.cloud.nacos.config.extension-configs[2].group=REFRESH_GROUP 
    • spring.cloud.nacos.config.extension-configs[2].refresh=true
    
    

    5、配置的优先级

    •Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力 从 Nacos 拉取相关的配置。 
    •A: 通过 spring.cloud.nacos.config.shared-configs[n].data-id 支持多个共享 Data Id 的配置 
    •B: 通过 spring.cloud.nacos.config.extensionconfigs[n].data-id 的方式支持多个扩展 Data Id 的配置 
    •C: 通过内部相关规则(应用名、应用名+ Profile )自动生成相关的 Data Id 配置 
    •当三种方式共同使用时,他们的一个优先级关系是:A < B < C
    
    2021-05-18 14:27:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载