目前市面上流行的三大配置中心框架:Spring CLoud Config 、Alibaba Nacos 以及携程apollo, 我们相应架构组号召,就使用Apollo吧。
Work Flow
简单解释:上图中有三套环境FAT
、UAT
和PROD
,每一套环境都部署了2套Configservice
和 Adminservice
.使用统一的Portal Server Cluster
对所有环境进行配置管理。如我们自己的配置环境:
Meta-Server(Configservice)说白一点,就是Eureka discovery
,每一套环境对应不同的一套meta server,以此来实现环境隔离,如下图:
#因为资源有限,因此我配置的三套环境使用同一台数据库,无法实现环境隔离,但是不影响展示效果。
local.meta=http://localhost:8080
2 dev.meta=http://localhost:8080
4 uat.meta=http://localhost:8080
6 pro.meta=http://localhost:8080
如图2所示。
Configure Server
apollo 服务端主要有三个Spring Boot项目 和两个数据库组成:
apollo-configservice(默认端口:8080)
提供配置的读取、推送等功能,服务对象是Apollo客户端
apollo-adminservice(默认端口:8090)
提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
apollo-portal(默认端口:8070)
通过域名访问Meta Server获取Admin Service服务列表(IP Port),而后直接通过IP Port访问服务,同时在Portal侧会做load balance、错误重试
- apolloportaldb
- apolloconfigdb
因为Apollo官方文档足够详细,想要了解的同学直接Apollo官网传送门)
但是又因为官方文档太过详细,以至于如果只想部署的同学可能觉得稍显繁琐,因此,我这里直接开始部署服务端,就废话少说了。
- 第一步,下载https://github.com/ctripcorp/apollo/releases
- 第二步,下载
adminservice
、configservice
和portal