一. 背景
在微服务架构中,每个服务都有自己的配置,配置数据库、redis的参数配置、服务器的地址等。通常情况下,在项目中配置了application-dev.yml、application-prod.yml、application-test.yml等多套环境配置,和应用打包在一起,启动服务时,选择不同的环境配置。如果需要修改配置信息,则需要重新进行打包,重启服务器。如是集群部署,还要考虑集群管理配置,代码安全、审核机制等因素,效率低。因此,动态配置就应运而生了。
二. 技术选型
微服务配置中心的技术选型一般有以下几个:Apollo、Disconf、Spring Cloud Config、Nacos等。
Apollo: 携程开源的配置管理中心,具备规范的流程治理、权限等特性。
Disconf:百度开源的配置管理中心,目前已经不维护了。
Spring Cloud Config:Spring Cloud 生态组件,结合git,可以和Spring Cloud体系无缝整合。
Nacos: 阿里开源的配置中心,也可以做DNS和RPC的服务发现。
由于Nacos比Apollo、Spring Cloud Config使用简单,而且还可以支持DNS和RPC的服务发现,博主选择了Nacos作为配置中心。
三. nacos配置中心的实现
本文的内容概要如下图1所示,将从四个方面带您了解nacos的使用。本文的demo代码已经上传github,小伙伴可以从自行下载。
图1 内容大纲
3.1 依赖库
由于需要把微服务注册到nacos并且读取配置中心配置,所以要依赖2个库。
<!--nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
3.2 项目配置
1)