【转】 SpringCloudAlibaba之Nacos Config配置中心实战
【转】 SpringCloudAlibaba之Nacos Config配置中心实战
SpringCloudAlibaba微服务实战教程系列
-------------------------------目录-----------------------------------
一、无脑应用
1、添加nacos配置
2、引入pom文件
3、配置config服务地址
4、注解使用
二、高级应用
1、nacos数据模型
2、区分环境应用
3、应用引入多个配置文件
---------------------------------------------------------------------
一、无脑应用
1、在nacos管理台进行添加配置(主要看图和第二个框框)
需要注意的是DataID属性的值为配置文件名格式为:${prefix}-${spring.profile.active}.${file-extension}
配置方式说明:
prefix 默认为 spring.application.name的值,也可以通过配置项spring.cloud.nacos.config.prefix 来配置。 spring.profile.active 即为当前环境对应的 profifile。 注意:当 spring.profile.active为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension} file-extension为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension来配置。⽬前只⽀持 properties 和 yaml类型。
哈哈~~,你如果看不懂我来简单说
prefix就是配置的服务名称,我这里服务名叫nacos-provider spring.profile.active就是启动时候指定的启动配置文件后缀(比如dev、test、prod),我这里启动的时候没有指定 file-extension就是文件的后缀,比如yml(nacos只能选择yaml)、properties,我这里使用的yaml
2、引入pom文件
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
3、配置项目文件
在resources中创建bootstrap.yml文件,配置配置中心信息
spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: public
4、使用配置变量
在类上面添加原生刷新注解@RefreshScope,在属性引用上添加@Value注解,这样变量就会实时进行刷新了,方便吧~
二、高级应用
1、nacos数据模型
首先Namespace命名空间、Group分组、集群这些概念都是为了进⾏归类管理,把服务和配置⽂件进⾏归类,进而实现一些功能:⽐如数据隔离、服务隔离,对于服务来说,不同命名空间中的服务不能够互相访问调⽤。
Namespace:命名空间,对不同的环境进⾏隔离,⽐如隔离开发环境、测试环境和⽣产环境
Group:分组,将若⼲个服务或者若⼲个配置集归为⼀组,通常习惯⼀个系统归为⼀个组
Service:某⼀个服务,⽐如java某个应用实例
DataId:配置集或者可以认为是⼀个配置⽂件
详情请参考官网:Nacos官网
2、区分环境应用
在nacos管理台上添加命名空间,并且在配置文件中指定namespace属性,进行配置或者服务的完全隔离
3、应用引入多个配置文件
主要是 ext-config 属性:
a、指定拓展文件data-id, b、需要设置刷新,默认不会动态刷新 c、文件优先级,默认配置高于拓展配置,拓展配置数组下标越大优先级越高
spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yaml namespace: public #以下为加载多个文件数组信息 直接指定dataid(对于扩展的dataId,[n] n越⼤优先级越⾼),也可以添加 group属性 ext-config[0]: data-id: xxx.yaml #默认数据不会主动刷新,添加改属性会动态刷新 refresh: true ext-config[1]: data-id: xxx.yaml #默认数据不会主动刷新,添加改属性会动态刷新 refresh: true
注意nacos客户端依赖与nacos服务端版本不一致导致的md5数据不一样,不停的刷新日志情况--->>解决方案
或者 com.alibaba.nacos.client: error 提高日志级别