Apollo作为成熟的分布式环境的配置中心,比Spring Cloud Config安装复杂很多,而且官方的安装文档因为考虑得特别全面,就写得很啰嗦,不方便我们快速部署。
配置中心系列
- 配置中心 - Spring Cloud Config
- Apollo - 企业级配置中心的快速部署
- Spring Boot接入配置中心Apollo
部署简介
Apollo主要部署3个组件
- Portal:管理配置的页面
- Admin Service:配置管理服务(为Portal提供接口)
- Config Service:配置服务(为客户端提供配置接口)
下载部署包
- 下载服务程序
下载页:https://github.com/ctripcorp/apollo/releases
wget https://github.com/ctripcorp/apollo/releases/download/v1.3.0/apollo-portal-1.3.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.3.0/apollo-adminservice-1.3.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.3.0/apollo-configservice-1.3.0-github.zip
wget
- 下载SQL文件
wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/db/migration/portaldb/V1.0.0__initialization.sql -O portaldb.sql
wget https://raw.githubusercontent.com/ctripcorp/apollo/master/scripts/db/migration/configdb/V1.0.0__initialization.sql -O configdb.sql
部署Config Service
Config Service需要在每个环境都部署一套(DB + Config Service)
Config Service需要在每个环境都部署一套(DB + Config Service)
Config Service需要在每个环境都部署一套(DB + Config Service)
数据库
MySQL: 5.6.5+
- 导入
source configdb.sql
- 验证
select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
Config Service
- 解压
unzip apollo-configservice-1.3.0-github.zip -d configservice
- 配置修改
configservice/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
注意账号、密码后面不要有空格
- 启动
configservice/scripts/startup.sh
因为日志写到/opt/logs,需要保证该目录的读写权限,或者在startup.sh修改LOG_DIR
部署Admin Service
Admin Service需要在每个环境都部署一套(DB + Admin Service)
Admin Service需要在每个环境都部署一套(DB + Admin Service)
Admin Service需要在每个环境都部署一套(DB + Admin Service)
数据库
Admin Service与Config Service共用数据库,所以不再需要导入
Admin Service
- 解压
unzip apollo-adminservice-1.3.0-github.zip -d adminservice
- 配置修改
adminservice/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
注意账号、密码后面不要有空格
这里数据库的配置与Config Service的一致
- 启动
adminservice/srcripts/startup.sh
因为日志写到/opt/logs,需要保证该目录的读写权限,或者在startup.sh修改LOG_DIR
部署Portal
数据库
- 导入
source portaldb.sql
- 验证
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
Portal
- 解压
unzip apollo-portal-1.3.0-github.zip -d portal
- 修改配置
portal/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
- 修改配置
portal/config/apollo-env.properties
local.meta=http://localhost:8080
dev.meta=http://192.168.58.101:8080
pro.meta=http://192.168.58.201:8080
假设Config Service分别部署在192.168.58.101和192.168.58.201上
- 启动
portal/scripts/startup.sh
部署成功后访问
http://localhost:8070
默认用户名:apollo
默认密码:admin
初始始配置
初始登录后,Apollo还需要进行一些配置,否则可能出现问题。配置的方式
管理员工具
-> 系统参数
-
apollo.portal.envs - 可支持的环境列表
apollo.portal.envs设置为dev,pro
,跟portal/config/apollo-env.properties
保持一致
organizations - 部门列表
[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]
其他常用配置
- 端口修改:
scripts/startup.sh
- 日志地址:
scripts/startup.sh
或apollo-adminservice.conf
,apollo-configservice.conf
常见问题
- 部署完成后,环境列表中只看到一个
DEV
环境
管理工具 - 系统参数
查询参数apollo.portal.envs
后,只有dev
,修改为dev,prod
后保存
修改完成后需要重启Portal生效
- 添加应用是只有默认的部门:
管理工具 - 系统参数
修改organizations
参考
- 微服务架构~携程Apollo配置中心架构剖析
- 分布式部署指南