第一篇:搭建apollo配置中心

为什么选择apollo,我做了一些对比:

 

Diamond

Disconf

Apollo

Spring Cloud Config

数据持久性

mysql

mysql

mysql

git

推拉模型

拉模型,http长轮询

拉模型,每隔15s拉一次全量数据

基于ZooKeeper,实时

http长轮询,1s

基于webhook和spring cloud bus

本地缓存

支持

支持

支持


是否支持灰度





客户端支持

 

java

java .net

java

配置界面

有界面

有界面

有界面

git

配置版本管理

 


支持

git

更新频率

官方不维护了

个人项目 2年未更新

最近更新

 

最重要的一点就是它支持.net core的客户端了,其次就是这个项目一直有人在维护。

apollo配置中心架构介绍:

官方网站的这个图就很说明问题了:

apollo configserver spring boot客户端连接 apollo 配置中心 springboot_数据库

 

看起来很复杂,其实稍微研究一下,条理就很清楚了:

apollo大体的结构如下:

1. Portal: 就是apollo的管理界面dashboard。

2. admin Service:提供配置的修改、发布等功能,服务对象是Apollo Portal,其实Portal就是前端,adminService就是后端。

3. Client客户端:就是我们常说的SDK,通过SDK,我们可以读配置配置,获取配置的变更,它访问的是config Service.

4. Config Service提供配置的读取、推送等功能。服务对象是Apollo客户端

整体的架构就是上面这四个了,中间的部分是为了高可用做的。

1.eureka服务注册与发现,apollo把configservice和adminservice都注册在eureka上,这样portal和client就都可以通过服务注册拿要访问对象的地址了(注意:这里的eureka是放在configservice项目里了)

2. meta server:在Eureka之上apollo架了一层Meta Server用于封装Eureka的服务发现接口,只是封闭了一下,目前还没有看到有其它的作用。(注意:这里的meta serve是放在configservice项目里了)

3. mysql:apollo唯一的外部依赖。如果使用docker compose部署那么它也会自动安装。

 

搭建apollo最快的方式应该就是使用docker Compose部署了。

需要准备的环境:Centos, docker, docker compse.

apollo configserver spring boot客户端连接 apollo 配置中心 springboot_docker_02

需要准备的文件:https://github.com/ctripcorp/apollo/tree/master/scripts/docker-quick-start

apollo configserver spring boot客户端连接 apollo 配置中心 springboot_运维_03

 

参考:https://github.com/ctripcorp/apollo/wiki/Apollo-Quick-Start-Docker%E9%83%A8%E7%BD%B2

按照上面链接的操作,安装就完成了

访问http://ip:8080,就可以访问eureka。查看服务注册的情况 

访问http://ip:8070 就可以访问portal 进行配置添加的操作。 

 

下一篇再介绍spring boot2结合apollo