一、介绍
- 简要介绍
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
二、架构原理
基础模型
- 用户在配置中心对配置进行修改并发布
- 配置中心通知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、错误重试
三、使用指南
使用软硬环境
硬件要求
支持硬件
类型 | 要求 |
服务器 | ARM/X86 |
实验硬件
类型 | 实验使用 |
服务器 | ARM |
软件要求
依赖软件列表
类型 | 要求版本 |
操作系统 | Redhat系或ubuntu系的系统 |
Java | 不小于1.8 |
Mysql | 不小于5.65 |
实验软件版本
类型 | 实验版本 |
操作系统 | Kylin-Server-V10 |
Java | 1.8.0_41 |
Mysql | 8.0.36 |
安装部署
创建数据库
安装步骤如下:
Apollo服务端共需要两个数据库:ApolloPortalDB
和ApolloConfigDB
,官方已经准备好,只需要导入数据库即可。
创建ApolloPortalDB
source /your_local_path/sql/apolloportaldb.sql
导入成功后,可以通过执行以下sql语句来验证:
select `Id`, `AppId`, `Name` from ApolloPortalDB.App;
创建ApolloConfigDB
source /your_local_path/sql/apolloconfigdb.sql
导入成功后,可以通过执行以下sql语句来验证:
select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;
配置数据库连接信息
Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑demo.sh,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接串信息。
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=apollo
apollo_config_db_password=Cloud@9000(如果没有密码,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=apollo
apollo_portal_db_password=Cloud@9000(如果没有密码,留空即可)
启动Apollo配置中心
执行启动脚本
./demo.sh start
当看到如下输出后,就说明启动成功了!
使用步骤
使用Apollo配置中心
- 登陆 输入用户名apollo,密码admin后登录
四、常见问题
五、资料出处
- https://github.com/apolloconfig/apollo-quick-start?tab=readme-ov-file