apollo 配置中心 支持php,apollo配置中心服务端部署

  • Post author:
  • Post category:php


apollo配置中心服务端部署

木某人 • 2020 年 05 月 07 日

Apollo服务端安装部署

40fa305bb8b0723a9d8b81301ab4d07a.png
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代码能力 可下载服务源码自行修改优化安装。