配置服务可以是普通的微服务项目,普通微服务项目改造config依赖,因为要实现配置,如简单的配置推送拉取,这是config独有的。
配置文件定义就按照下图规则来做
关键的配置,选的活动状态是dev,dev模式就是开发环境,要保证和配置中心要统一,这里端口稍微改了,8787,通过这样一个配置,读取Nacos配置中心最新的配置数据,然后在本地做一个展示。 本地展示,通过拟定了一个简单动态的变量来测试,主要是定义了一个用户名,一个密码,两个变量,通过围绕注解,让它自动去加载最新的变量值。 启用注解,refresh主要作用自动去背后线程去拉取注册中心最新的值。
默认值,一个是Java,一个是1234qwer。 通过接口来调用,返回最新的用户密码,所以这里面如果之前用户和密码是Java和1234qwer的话,正常配置中心推送完新的配置后,重新查询,就应该返回新的值。 正常加载bootstreap再加载 Applcation
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。