官网地址:http://apollo.auto/
GitLab地址:https://github.com/ctripcorp/apollo
总体架构
用户在Portal操作配置发布
Portal调用Admin Service的接口操作发布
Admin Service发布配置后,发送ReleaseMessage给各个Config Service
Config Service收到ReleaseMessage后,通知对应的客户端
实现原理
上图简要描述了Apollo客户端的实现原理:
客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。(通过Http Long Polling实现)
客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。
这是一个fallback机制,为了防止推送机制失效导致配置不更新
客户端定时拉取会上报本地版本,所以一般情况下,对于定时拉取的操作,服务端都会返回304 - Not Modified
定时频率默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property: apollo.refreshInterval来覆盖,单位为分钟。
客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在内存中
客户端会把从服务端获取到的配置在本地文件系统缓存一份
在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置
应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知
MySQL安装
版本要求:5.6.5+主机:10.2.42.28清除mysql依赖包:
rpm-qa|grep mysql
yum remove mysql-libs
安装mysql5.7:安装顺序:common→libs→client→server
rpm-ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm-ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
安装成功界面:
[root@DCA-APP-COM-apollo02 mysql]#rpm-ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
warning:mysql-community-common-5.7.26-1.el7.x86_64.rpm:HeaderV3 DSA/SHA1Signature,key ID5072e1f5:NOKEY
Preparing...################################# [100%]
Updating/installing...
1:mysql-community-common-5.7.26-1.e################################# [100%]
[root@DCA-APP-COM-apollo02 mysql]#rpm-ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
warning:mysql-community-libs-5.7.26-1.el7.