Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
github开源地址:https://github.com/ctripcorp/apollo
单环境快速部署
-
Apollo多环境分部式部署Github 地址
分布式部署指南
在一个服务器上进行Apollo多环境配置部署不同于分布式部署中的多个服务器,我们可以采用同一服务器不同端口和不同appId进行环境区分 -
环境准备
Centos7
Java1.8
Mysql5.6
数据库安装步骤省略
yum install -y java-1.8.0-openjdk-devel
jar包下载地址:https://github.com/ctripcorp/apollo/releases/tag/v1.5.0
也可选择自己想要的版本: https://github.com/ctripcorp/apollo/releases
如果是多套环境,需要一个portal,然后每个环境中需要一个apollo-adminservice和apollo-configservice, 将解压后的apollo-adminservice和apollo-configservice目录分别归置到不通环境的目录下:可以参考一下目录结构将文件放入相应的路径下。test目录实为dev
mkdir apollo/{pro,dev,sql} -p
mkdir apollo/pro/apollo-adminservice&& unzip -d apollo/pro/apollo-adminservice/ apollo-adminservice-1.5.1-github.zip
mkdir apollo/pro/apollo-configservice && unzip -d apollo/pro/apollo-configservice/ apollo-configservice-1.5.1-github.zip
mkdir apollo/dev/apollo-adminservice&& unzip -d apollo/dev/apollo-adminservice/ apollo-adminservice-1.5.1-github.zip
mkdir apollo/dev/apollo-configservice && unzip -d apollo/dev/apollo-configservice/ apollo-configservice-1.5.1-github.zip
- 数据库配置
获取路径 https://github.com/ctripcorp/apollo/tree/master/scripts/sql
多环境部署的数据库是一个portal库,每个环境一个配置库
将sql 到入数据库中
source apollo/sql/apolloportaldb.sql
source apollo/sql/proapolloconfigdb.sql (修改sql中的数据库name)
source apollo/sql/testapolloconfigdb.sql (修改sql中的数据库name)
通过以下SQL简单验证是否导入成功
select `Id`, `Key`, `Value`, `Comment` from `ApolloPortalDB`.`ServerConfig` limit 1;
select `Id`, `Key`, `Value`, `Comment` from `ApolloConfigDB`.`ServerConfig` limit 1;
修改ApolloPortalDB.ServerConfig 环境列表Value 值为需要的环境,中间用’,'隔开,注意:环境名称必须是指定的dev,uat,fat,pro 值,如需添加新的环境需要修改源码。
update ServerConfig set Value = 'dev,pro' where Id = 1;
修改proapolloconfigdb.ServerConfig eureka服务url的 Value 值区别于dev环境
update ServerConfig set Value = 'http://localhost:8082/eureka/' where Id = 1;
- 修改程序配置文件
修改pro环境的 appId 和端口,使每个环境的apollo-adminservice 和apollo-configservice 的 appId和端口不同,每个环境中adminservice和configservice 各配置文件的appId和端口保持一致,注意:configservice 配置文件中的端口要和数据库中的eureka服务url的 Value 值的端口保持一致
每个环境下adminservice的配置文件修改
apollo/pro/apollo-adminservice/scripts/startup.sh 第2,4行
apollo/pro/apollo-adminservice/config/app.properties 第1行
apollo/pro/apollo-adminservice/apollo-configservice.conf 第3行
每个环境下configservice的配置文件修改
apollo/pro/apollo-configservice/scripts/startup.sh
apollo/pro/apollo-configservice/config/app.properties
apollo/pro/apollo-configservice/apollo-configservice.conf
修改数据库连接信息
apollo/pro/apollo-adminservice/config/application-github.properties
apollo/pro/apollo-configservice/config/application-github.properties
apollo/pro/apollo-portal/config/application-github.properties
…
apollo/dev/apollo-adminservice/config/application-github.properties
apollo/dev/apollo-configservice/config/application-github.properties
apollo/dev/apollo-portal/config/application-github.properties
5.启动程序
#!/bin/bash
for env in "pro" "dev"
do
sh /usr/local/apollo/${env}/adminservice/scripts/startup.sh \
&& sh /usr/local/apollo/${env}/configservice/scripts/startup.sh
done
sh /usr/local/apollo/portal/scripts/startup.sh
访问: http://localip:8070