在一个服务器上进行Apollo多环境配置部署

it2023-02-19  75

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

最新回复(0)