Apollo配置中心多环境配置使用日记
本文记录了我在使用Apollo配置中心进行同一台服务器多环境配置时的全部详细记录。
一、 开发环境构建(不细说,不懂就百度)
1、开发端: win7+mysql5.7+idea-2020.3+navcat+jdk1.8
2、服务器:CenTos7+jdk1.8+MySql5.7
3、Apollo多环境配置的要点是,每多配置一个环境就多启动两套服务(apollo-adminsevice+apollo- configservice),apollo-portal服务永远只启动一套,所以我们的步骤是下载好这三套服务,按照自己设定的每个环境把文件分布好、设置好端口、数据库等,然后启动就是了。
二、相关下载及文件准备
Apollo下载(几乎慢的不可下载,但是我夜里2点试了一下,快的分分钟的事儿搞定,好经验大家分享)
centos7下载:
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-adminservice-1.7.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-configservice-1.7.0-github.zip
wget https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-portal-1.7.0-github.zip
或者windows下载:
https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-adminservice-1.7.0-github.zip
https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-configservice-1.7.0-github.zip
https://github.com/ctripcorp/apollo/releases/download/v1.7.0/apollo-portal-1.7.0-github.zip
总之是得到以上三个文件。
三、服务器上Apollo文件准备
centos7作为Apollo多环境部署服务器,执行创建目录的命令:
cd /usr/local/
mkdir software
cd /usr/local/software
mkdir apollo
cd /usr/local/software/apollo
mkdir dev (开发环境目录)
mkdir pro (生产环境目录)
然后将下载apollo必需的三套服务的ZIP文件放在 /usr/local/software,以便解压到需要他的地方
然后将software下面的这三个ZIP文件解压到 /usr/local/software/apollo/下,形成了三个服务的文件夹,解压使用如下命令:
cd /usr/local/software
unzip apollo-adminservice-1.7.0-github.zip -d /usr/local/software/apollo/apollo-adminservice
unzip apollo-configservice-1.7.0-github.zip -d /usr/local/software/apollo/apollo-configservice
unzip apollo-portal-1.7.0-github.zip -d /usr/local/software/apollo/apollo-portal
为了apollo多环境配置,要把software/apollo/目录下的apollo-configservice和apollo-adminservice两个解压后的目录复制到Apollo目录下的dev和pro,复制后的文件目录结构如下:
四、数据库配置(apollo是基于MySQL数据库的)
从上图可以发现,我的Apollo目录下有sql子目录,里面有三个sql文件,后两个sql文件是系统默认的,可以在官方下载地址下载:
https://github.com/nobodyiam/apollo-build-scripts/tree/master/sql
1、在开发端安装一个navcat(mysql数据库前端工具),启动后创建一个到centos7服务器的连接:
2、利用sql文件夹下的apolloconfigdb.sql和apolloportaldb.sql两个文件构建两个数据库:
同样的方法创建apolloportalDB
在这里插入图片描述
数据库还缺少关于生产环境的ApolloConfig_pro,这个有两种方法:
一、在navcat里创建一个空数据库,命名为ApolloConfigDB_pro,将ApolloConfigDB下的所有的表复制过来。
二、创建ApolloConfigDB_pro的另一个办法是将apolloconfigdb.sql文件拷贝到合适idea编辑的目录,重命名为apolloconfigdb_pro.sql,然后修改里面有关数据库名称,然后用这个apolloconfigdb_pro.sql按照一中说的方法去创建ApolloConfigDB_pro数据库,参考示意图,不在赘述。
五、有关端口修改
Apollo的每个服务是一个独立的进程,独立的端口,我们是多环境配置,所以要修改有关参数才可以当每个服务启动时,正确的使用端口等参数;
1、修改数据库如图(centos7服务器的IP:192.168.0.154):
2、确保每个服务启动时,连接到自己的数据库,所以修改如下(知道现在我们也没有讨论Dev环境的配置,是因为Apollo默认的就是Dev环境):
进入默认目录修改三套服务启动时的数据库:
cd cd /usr/local/software/apollo #当然也要告诉他启动该服务时使用哪个数据库
vim apollo-adminservice/config/application-github.properties /回车
spring.datasource.url = jdbc:mysql://192.168.0.154:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = lzm@551214 (当然这是我的密码)
vim apollo-configservice/config/application-github.properties /回车
spring.datasource.url = jdbc:mysql://192.168.0.154:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = lzm@551214
vim apollo-portal/config/application-github.properties /回车
spring.datasource.url = jdbc:mysql://192.168.0.154:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = lzm@551214
进入生产环境pro目录修改两套服务启动时的数据库:
cd /usr/local/software/apollo/pro
vim apollo-adminservice/config/application-github.properties /回车
spring.datasource.url = jdbc:mysql://192.168.0.154:3306/ApolloConfigDB_pro?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = lzm@551214 (当然这是我的密码)
vim apollo-configservice/config/application-github.properties /回车
spring.datasource.url = jdbc:mysql://192.168.0.154:3306/ApolloConfigDB_pro?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = lzm@551214
3、配置每套服务启动时的端口:
我这里把/usr/local/software/apollo/目录下的两个服务作为默认的Dev配置,先用vim编辑器打开看一下:
cd /usr/local/software/apollo /系统默认dev环境
vim apollo-configservice/scripts/startup.sh /config服务端口
vim apollo-adminservice/scripts/startup.sh /admin服务端口
cd /usr/local/software/apollo/pro /生产环境
vim apollo-configservice/scripts/startup.sh /生产环境config服务端口
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210114185558295.png
vim apollo-adminservice/scripts/startup.sh /生产环境admin服务端口,注意LOG_DIR不重复
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210115112827194.png
4、因为多环境共用一个apollo-portal服务,所以把以上端口配置告诉apollo-portal:
cd /usr/local/software/apollo/ /portal所在目录
vim apollo-portal/config/apollo-env.properties
同时指定apollo-portal对外服务端口:
vim apollo-portal/scripts/startup.sh
六、启动各个服务
1、编写启动文件
vim /usr/local/software/apollo/apollostart.sh
/usr/local/software/apollo/apollo-configservice/scripts/startup.sh
/usr/local/software/apollo/apollo-adminservice/scripts/startup.sh
/usr/local/software/apollo/pro/apollo-configservice/scripts/startup.sh
/usr/local/software/apollo/pro/apollo-adminservice/scripts/startup.sh
/usr/local/software/apollo/apollo-portal/scripts/startup.sh
2、启动
cd /usr/local/software/apollo
chmod 777 ./apollostart.sh
./apollostart.sh 看启动有没有报错或者异常
3、在开发端(我用的win7)的浏览器输入:http://192.168.0.154:8070 应该可以看到:
登录后
打开默认的项目
返现开发环境DEV和生产环境PRO
OKOKOK-----
七、测试(使用springboot微服务从Apollo配置中心获取配置)
1、idea+springcloud创建名为demoproj的项目,service-web微服务项目测试从Apollo配置中心获取配置数据:
pom.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demoproj</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>