apollo配置中心服务端部署
木某人 • 2020 年 05 月 07 日
Apollo服务端安装部署
apollo-configservice:提供配置获取接口,提供配置更新推送接口,接口服务对象为Apollo客户端
apollo-adminservice:提供配置管理接口,提供配置修改、发布等接口,接口服务对象为Portal,以及Eureka
apollo-portal:提供Web界面供用户管理配置
apollo-client:Apollo提供的客户端程序,为应用提供配置获取、实时更新等功能
java环境Apollo服务端:1.8+
Apollo客户端:1.7+
mysql环境
– 版本要求:5.6.5+
Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。
连接上MySQL后,可以通过如下命令检查:
SHOW VARIABLES WHERE Variable_name = ‘version’;
Variable_name Value
version 5.7.11
注1:MySQL版本可以降级到5.5,详见mysql 依赖降级讨论。
注2:如果希望使用Oracle的话,可以参考vanpersl在Apollo 0.8.0基础上开发的Oracle适配代码,Oracle版本为10.2.0.1.0。
注3:如果希望使用Postgres的话,可以参考oaksharks在Apollo 0.9.1基础上开发的Pg适配代码,Postgres的版本为9.3.20,也可以参考xiao0yy在Apollo 0.10.2基础上开发的Pg适配代码,Postgres的版本为9.5。
下载apollo所需安装包
注意:apollo-adminservice-1.6.1-github.zip apollo-configservice-1.6.1-github.zip apollo-portal-1.6.1-github.zip 共计三个zip包
导入apollo-sql
Apollo服务端共需要两个数据库:ApolloPortalDB和ApolloConfigDB,我们把数据库、表的创建和样例数据都分别准备了sql文件,只需要导入数据库即可。
需要注意的是ApolloPortalDB只需要在生产环境部署一个即可,而ApolloConfigDB需要在每个环境部署一套,如fat、uat和pro分别部署3套ApolloConfigDB。注意:如果你本地已经创建过Apollo数据库,请注意备份数据。我们准备的sql文件会清空Apollo相关的表。
source /your_local_path/scripts/sql/apolloportaldb.sql;
source /your_local_path/scripts/sql/apolloconfigdb.sql;
验证select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
注意如下操作,修改配置完成后不要着急启动,服务有启动先后顺序
apollo-adminservice#解压安装包
gunzip apollo-adminservice-1.6.1-github.zip -d /opt/apollo-admin
cat /opt/apollo-admin/config/application-github.properties
#修改数据库连接信息
# DataSource
spring.datasource.url = jdbc:mysql://0.0.0.0:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = ***
spring.datasource.password = ***
#### script下是启动脚本
#### 自行修改端口
SERVER_PORT=${SERVER_PORT:=7090}
#### 自行修改java优化参数
export JAVA_OPTS=”-Xms1024m -Xmx2046m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=8″
sh /opt/soft/apollo-portal/scripts/startup.sh
apollo-configservice# DataSource
spring.datasource.url = jdbc:mysql://0.0.0.0:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = ***
spring.datasource.password = ***
sh /opt/soft/apollo-portal/scripts/startup.sh
#### 优化如上adminservice
apollo-portalservicecat /opt/soft/apollo-portal/config/apollo-env.properties
#注本文共计部署了三套环境jx,测试,线上,需要配置三套服务地址,如测试服务 仅需部署一套环境即可
pro.meta=http://xxx.xxx.cn
jx.meta=http://jxxxx.xxx.cn
dev.meta=http://txxx.xxx.cn
cat /opt/soft/apollo-portal/config/application-github.properties
# DataSource
spring.datasource.url = jdbc:mysql://0.0.0.0:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = ***
spring.datasource.password = ***
sh /opt/soft/apollo-portal/scripts/startup.sh
服务依次启动 启动顺序 apollo-config –> apollo-admin –> apollo-portal
本文仅部署一套环境,如多个环境 需要每个环境需要单独部署一套 configservice和adminservice 及单独的configservice数据库portal配置的meta地址别忘修改
如有java代码能力 可下载服务源码自行修改优化安装。