SpringCloudAlibaba系列之Nacos-下(配置中心)
上篇SpringCloudAlibaba系列之Nacos-上(服务注册&发现)我们讲到了Nacos作为服务注册与发现的安装、使用情况,这次我们来说一下作为配置中心的集成和使用。
一、Nacos配置
命名空间:对应项目环境。开发、测试、预演和正式。
我这边命名空间之间就用的 dev、test、uat 和 prod ,不是用的系统自生成的uuid,这个意义不大。
配置管理:public空间一般是空的,一些临时项目会用一下。
其它环境下面会有正式项目的配置,配置文件命名如下:
项目名-环境名.yaml,如:以上的就是 elogserver项目在开发环境dev对应的配置文件。
基本也就是一些数据库配置啥的,毕竟有些内容是一般项目人员不需要或者没有权限看到的。
类似这些配置都可以放到配置中心来统一管理,特别是一些第三方对接或集成的关键信息,如:微信支付、支付宝支付,三方AppID,密钥啥的。
二、三方版本兼容
这篇文章在编写时,还是基于当前项目的 SpringCloud2 环境实际情况操作的,因此:大家先要注意一下相关版本的情况:
SpringBoot 2.6.9 <--> SpringCloud 2021.0.8 <--> SpringCloudAlibaba 2021.1
其中还有管理依赖,及 bootstrap 专用依赖。
注意 bootstrap 的版本,只能用3.x.x 的版本,如果有 4 以上的会包错误的。
其它就是服务发现和注册中心的依赖了,版本就直接用SpringCloudAlibaba的对应版本。
其它版本,如果是 SpringBoot3的,就比较简单了,三方都用最新版本的就可以了,只是JDK需要用 17+ 的。
三、项目集成使用
主配置文件调整:如果是 application.yml 或者 application.properties,文件改名为:bootstrap.yml。
还有不同环境的配置文件,如:application-dev.yml 这样的都不用了,基本只要一个 bootstrap.yml 就够了。
具体三部分如下:
第一部分:固定配置
包括项目启用的端口和项目请求初始地址:
#固定参数
server: port: 20000 # 项目默认端口,有单服应用集群时,用启动命令调整 servlet: context-path: /elogserver
如果这部分在不同环境下也要跟着变化的话,这部分可以没有,直接写到 Nacos 的各环境配置文件中。
第二部分:系统配置
#系统配置 spring: application: name: elogserver #应用名称,最终配置文件会使用到。 profiles: active: dev cloud: nacos: discovery: server-addr: 10.12.58.206:8848 config: server-addr: 10.12.58.206:8848 # Nacos 服务器地址 namespace: ${spring.profiles.active} # 命名空间,默认使用 dev 开发环境 file-extension: yaml
系统配置完成,默认配置文件的组成如下:
${spring.application.name}-${spring.profiles.active}${file-extension}
如我这边项目的测试环境配置文件,对应的是:命名空间 dev 下,elogserver-dev.yaml 的配置文件,可以找一下对应的文件是否存在。
第三部分:配置应用
举例,相关数据库及连接池配置
数据库及连接池配置中,除固定参数外,其中最重要的6项配置内容是需要配置中心提供的,对应配置中心的内容如下,需要一一对应上:
到此项目就能顺利获取配置中心的配置信息,完成项目的启动了。
如果是其它普通的配置参数,和之前 application 配置参数一样使用即可。
还有一个特别的优势,就是之前的配置参数,如果有变动,需要项目重启之后才能生效,而 Nacos配置中心的方式,再加上 @RefreshScope 注解,可以进行热刷新噢。
这样 Nacos 配置中心调整了对应的配置参数内容,调用方直接刷新就可以获取最新的配置结果呢。
这对应一些项目的测试或线上问题协助处理,提供了便利。赞一个。
注:文强哥精品集,祝各位使用愉快!