1. 背景介绍
最近项目架构改造,涉及到配置中心选型,要求如下:
- 支持集群
- 要求配置信息落oracle数据库
- 配置信息要方便,页面配置时需要支持Input输入、Switch 开关、Select单选、Checkbox多选框
当前使用比较多的开源的配置中心:
- 携程apollo:功能强大,支持spring cloud,支持集群部署,但需要mysql支持
- 阿里nacos:支持spring cloud,支持集群部署, 1.3.0版本之前,集群必须依赖mysql,从1.3.0开始集群也支持内嵌存储(参考:Nacos 1.3.0 特性以及功能使用文档),同样只支持mysql数据库
- spring cloud config:支持集群部署,配置信息支持本地文件、git、数据库存储等。
综合分析后选择spring cloud config数据库存储模式+界面自研,于是翻了翻spring cloud config资料,做个了demo。后面有时间会写一篇文章《spring cloud config server的启动流程源码分析》。
2. 配置中心架构图
3. config server demo
该demo不包含MQ通知和web配置功能,可以在该demo上扩展
pom文件引入如下:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>