关于使用springboot集成nacos配置记录

  配置概述

        nacos的配置分为两个部分,一个是服务配置:spring.cloud.nacos.config.xxxxx,一个是服务发现:spring.cloud.nacos.discovery.xxxxx。两者相互分离,我们可以只使用其中一个或两个功能。

        一些公共的配置也可以配置在spring.cloud.nacos.xxxx中。

如:服务配置和服务发现的用户密码相同时:

spring.cloud.nacos.config.username=

spring.cloud.nacos.config.password=

spring.cloud.nacos.discovery.usernamer=

spring.cloud.nacos.discovery..password=

可以简略为:

spring.cloud.nacos.username=

spring.cloud.nacos.password=

在 Nacos Spring Cloud 中,dataId 的完整格式如下:${prefix}-${spring.profile.active}.${file-extension}

prefix:默认是spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profile.active对应的值。

file-extension是文件后缀名。

 所以我们在使用nacos作为配置中心时,需要按照要求创建文件。

配置项

 # 不使用nacos的配置中心配置 使用本地配置
spring.cloud.nacos.config.enabled=false
# 不把自己注册到注册中心的地址
spring.cloud.nacos.discovery.register-enabled=false

#配置中心不覆盖本地配置和系统参数配置

spring.cloud.config.override-none= true

spring.cloud.config.override-system-properties=false

#默认情况下,从Spring Cloud Config中加载的配置项,是不能被本地的配置项覆盖的,如果想要覆盖这些配置项,需要在配置中心的配置文件中(或者系统配置项、命令行配置项中等)添加以下配置项(注意本地配置文件中增加该配置无任何意义)

spring.cloud.config.allow-override=true

# nacos不使用动态刷新配置(默认是动态刷新配置值)需要重启应用才生效

spring.cloud.nacos.config.refresh.refresh.enabled= false

配置依赖

在springboot中分别需要引入以下两个依赖:

服务配置:

<dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

服务依赖:

<dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> 

SpringCloud Config使用

        Spring Cloud中配置文件的加载机制与其它的Spring Boot应用存在不一样的地方;如它引入了bootstrap.properties的配置文件,同时也支持从配置中心中加载配置文件等;本文主要聚焦在这些配置文件加载的优先级及覆盖关系的控制上,对于帮助理解Spring Cloud的配置文件加载方式有一定的帮助。

        Spring Cloud启动的时候会创建一个bootstrap的上下文,它是应用的父级上下文(请注意这里所说的bootstrap指的是是启动最开始时加载的配置项,与bootstrap.yml或者说bootstrap.properties是两码事,这点很容易混淆);它负责从一些外部环境中加载配置项,如配置中心;这部分配置项的优先级是最高的,因此它不会被其它的配置文件中加载的配置项给覆盖。

        bootstrap的上下文使用另外一种机制来加载额外的配置文件,相对于从application.properties(或者yml)中加载配置文件中加载配置项,你也可以选择从bootstrap.properties(yml)中加载,以区分boostrap上下文中加载的配置项和主上下文加载的配置项。

         springboot中使用nacos作为配置中心,项目启动时会先从bootstrap.yml中获取nacos的配置信息,如果没有bootstrap.yml文件或者文件中nacos的配置信息,则会使用系统默认的下给你管信息去获取配置文件。所以我们在没有bootstrap.yml文件或者文件中nacos的配置信息的情况下启动,会看到项目一开始报错,就是在使用默认配置信息获取配置项,但是这个不影响。可参考:NacosPropertySourceLocator代码。

         可以在系统配置项或者启动命令参数中指定不使用bootstrap机制加载配置项:

spring.cloud.bootstrap.enabled=false

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值