第一篇:搭建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大体的结构如下:
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.
需要准备的文件:https://github.com/ctripcorp/apollo/tree/master/scripts/docker-quick-start
参考: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