###
1、总体设计
apollo社区文章地址:
https://www.apolloconfig.com/#/zh/README
1.1 基础模型
如下即是Apollo的基础模型:
用户在配置中心对配置进行修改并发布
配置中心通知Apollo客户端有配置更新
Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用
1.2 架构模块
下图是Apollo架构模块的概览,详细说明可以参考Apollo配置中心架构剖析。
上图简要描述了Apollo的总体设计,我们可以从下往上看:
Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端
Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)
Config Service和Admin Service都是多实例、无状态部署,所以需要将自己注册到Eureka中并保持心跳
在Eureka之上我们架了一层Meta Server用于封装Eureka的服务发现接口
Client通过域名访问Meta Server获取Config Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试
Portal通过域名访问Meta Server获取Admin Service服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Portal侧会做load balance、错误重试
为了简化部署,我们实际上会把Config Service、Eureka和Meta Server三个逻辑角色部署在同一个JVM进程中
2、apollo官网地址
apollo官方地址:
https://github.com/ctripcorp/apollo
克隆或者下载apollo zip源码
git clone https://github.com/ctripcorp/apollo.git
或者
wget https://github.com/ctripcorp/apollo/archive/refs/heads/master.zip
代码文件目录结构
3、在自建mysql对应库中执行如下两个sql
执行数据库sql
4、修改配置文件
vim /scripts/shell/apollo_code/apollo-master/scripts/build.sh
5、将本地maven镜像仓库替换为阿里云镜像仓库(如果不替换 下载包可能会报错)
替换方法:
6、构建apollo项目
sh /scripts/shell/apollo_code/apollo-master/scripts/build.sh
7、复制构建文件到自定目录
8、解压文件到指定目录
9、修改portal、configservice、adminservice配置文件(本次只用了pro和dev环境)
10、启动服务(启动顺序:configservice > adminservice > poral)
11、登录网站查看(apollo登录账号:apollo,密码:admin)
###