Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。
官方文档: https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
前面已经搭建好 Nacos Server服务了,下面使用 Nacos 做配置中心。
在app-user服务中使用Nacos做配置中心。
bootstrap配置文件,一般添加 nacos配置中心的相关信息。项目的信息还是放到 application配置文件中。
必须使用 bootstrap.properties或者 bootstrap.yaml配置文件来配置 Nacos Server 地址。
在 Nacos Spring Cloud 中,DataId 的完整格式如下:
- prefix: 默认为 ,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
- spring.profiles.active: 即为当前环境对应的 profile, 注意:当 为空时,对应的连接符 - 也将不存在, dataId 的拼接格式变成 {file-extension}
- file-exetension: 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。
此时,application.yaml文件内容如下:
在 Nacos Server管理界面中,新建 DataId为 app-user 的配置列表。
这里在启动类中,获取配置信息。
启动服务,发现获取的是 app-user.properties,我们把 app-user.properties删除,立刻获取到了 app-user配置信息。
配置文件的优先级为:app-user.properties > app-user。两者都是 Properties格式。
然后,我们再把 app-user改为 yaml格式。发现获取不到 Nacos的配置信息了。
在 bootstrap配置文件中,需要我们显示的声明 dataid 文件扩展名为 yaml。
重启服务,发现获取又到了 app-user(yaml格式)配置信息。
- 1)nacos会自动根据服务名拉取 DataId对应的配置文件。
- 如果DataId与服务名相同,则这个配置文件称为默认配置文件,默认DataId可以不写后缀,其他DataId必须写上后缀。
- 如果DataId跟服务名不一致 就需要手动创建DataId。
- 2)Nacos客户端默认是Properties的文件扩展名 ,如果修改成为非Properties格式,则必须通过 spring.cloud.nacos.config.file-extension=yaml进行设置。
- 3)一般我们约定使用一种格式,指定好file-extension=yaml。DataId的话可以不写或写上后缀(推荐)。
- 4)DataId命名一般是服务名,通常使用.来拼接。
上面针对 spring.cloud.nacos.config.xxx配置,简单使用了 namespace和 file-extension。其他配置下面也使用一下。
启动app-user服务,使用 Spring原生的 @Value(“key”)注解就可以获取取 naocs配置中心的信息。
- @Value注解:可以获取到配置中心的值,但是无法动态感知修改后的值。
- :Nacos的注解,可以实现。
访问,然后修改动态获取值,ok。
spring-cloud-starter-alibaba-nacos-config 在加载配置的时候,
不仅仅加载了以 dataid为 {file-extension:properties} 为前缀的基础配置,
还加载了dataid为 {profile}.${file-extension:properties} 的基础配置。
在日常开发中,如果遇到多套环境下的不同配置,可以通过 Spring 提供的 ${spring.profiles.active} 这个配置项来配置。
1)application.yaml配置文件如下:
2)nacos管理界面,创建DataId为的配置
3)重启app-user服务。发现获取了 app-user-dev.yaml的配置信息
Namespace 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。
在没有明确指定配置的情况下, 默认使用的是Nacos 上 Public 这个namespace。
如果需要使用自定义的命名空间,可以通过以下配置来实现:
spring.cloud.nacos.config.namespace=b4d0832b-a7b0-44c2-8ce5-1abe676a4736
Group是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。
在没有明确指定配置的情况下,默认是DEFAULT_GROUP 。如果需要自定义自己的 Group,可以通过以下配置来实现:
spring.cloud.nacos.config.group=DEVELOP_GROUP
Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。
Data ID 通常采用类 Java 包(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。此命名规则非强制。
通过自定义扩展的 Data Id 配置,既可以解决多个应用间配置共享的问题,又可以支持一个应用有多个配置文件。
自定义 Data Id 的配置有两种方式:
- spring.cloud.nacos.config.sharedConfigs:支持共享的 DataId。比如:不同工程的通用配置。
- spring.cloud.nacos.config.extensionConfigs:支持扩展的 DataId。比如:一个应用多个 DataId 的配置
重启 app-user服务。创建 DataId为 app.service.common01.yaml配置。发现服务注册成功。
优先级从高到低:
- {profile}.${file-extension:properties}
- {file-extension:properties}
- ${spring.application.name}
- extensionConfigs:一个微服务的多个配置,比如:nacos,mybatis
- sharedConfigs:多个微服务公共配置,比如:redis
profile > 带后缀配置文件 > 默认配置文件 > extension-configs(下标越大优先级就越大) >shared-configs(下标越大优先级就越大)
到此这篇Nacos配置中心使用(nacos 配置中心使用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!– 求知若饥,虚心若愚。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qkl-jr/57607.html