详情见nacos的官方文档
在 Nacos Spring Cloud 中,数据集(Data Id) 的配置完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix:就是配置的服务名,默认是你配置的,通俗的说就是服务注册时注册到服务中心的服务名的值:
spring:
application:
name: shop-coupon #服务名
spring.profile.active:是配置开发环境的值,一个程序不可能总是在开发环境,可能需要切换到测试环境,上线环境,他们的配置文件都是不同的,所以为了方便环境切换,我们配置不同的开发环境文档。比如在application.yml中有配置dev,就是开发环境:
spring:
profiles:
active: dev #表示开发环境
最后我们需要指定配置文件类型,默认是properties。我们可以自己指定文件类型,比如配置:
spring:
cloud:
nacos:
config:
file-extension: yaml #指定配置文件类型为yaml文件
指定好配置文件类型,我们最终在配置中心新增配置文件就是:shop-coupon-dev.yaml。
1)、命名空间:配置隔离:
默认: public(保 留空间);默认新增的所有配置都在public空间。隔离开发,测试,生产环境。
可以添加命名空间,然后在bootstrap.yml配置文件添加命名空间的id即可切换到对应的命名空间,使用对应空间下的配置文件:
cloud:
nacos:
config:
namespace: a65a17de-e8f3-4d00-8d87-91549aaa0f02 #对应创建的命名空间的UUID
也可以基于微服务来创建命名空间,用每一个微服务名来命名,达到隔离每一个微服务的目的,哪一个微服务需要配置直接去对应的微服务空间下找配置即可,使得项目更加结构化。
2)、配置集:所有配置的集合。
3)、配置集ID:类似文件名。
Data ID:类似文件名
4)、配置分组:按时间等因素影响,可以去分组配置,比如双11组,双12组等等
默认所有的配置集都属于: DEFAULT_ GROUP;我们也可以自己适配。
一般的建议是使用命名空间来隔离服务,即每个微服务创建一个命名空间,使用配置分组来区分环境:dev、test、prod等。
将一个配置文件按功能拆分成不同的文件,然后在程序组合加载到一起组成一个完整的配置文件。
比如拆分一下配置:
server:
port: 5001
spring:
profiles:
active: dev #表示开发环境
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://139.224.67.81:3306/zunhui_sms?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root
application:
name: shop-coupon
spring:
application:
name: shop-coupon
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml #指定配置文件类型为yaml文件
discovery:
server-addr: 127.0.0.1:8848
mybatis-plus:
mapper-locations: classpath/mapper/**/*.xml
global-config:
db-config:
id-type: auto #配置id自增
就可以拆分成三个文件,一个关务数据源的datasource.yml的,一个关于mybatis的,剩下的一个other配置:
只需要在配置文件中使用ext-config就可以加载多个配置文件:
nacos作为配置中心的基本配置规则就是这些。