一台服务器 部署多环境的 apollo
以windows环境为例,linux环境类似部署方式
前置条件 java环境、MySQL、gitBash、eureka注册中心
apollo官网 https://www.apolloconfig.com/
一、下载安装包、数据库sql
下载地址:https://github.com/apolloconfig/apollo/releases
1.1 下载安装包
三个安装包apollo-configservice-x.x.x-github.zip
apollo-adminservice-x.x.x-github.zip
apollo-portal-x.x.x-github.zip
1.2 下载数据库sql
下载source code的压缩包,解压后,目录apollo-x.x.x\scripts\sqlapolloportaldb.sql
apolloconfigdb.sql
特别注意,如果已经安装过apollo,直接执行会删除之前的数据
下载同一个releases的三个安装包和source code的压缩包, 才能保证安装包和sql版本一致。
二、分布式环境
服务器A, 部署apollo-portal服务,此服务为总控制服务 ip: 192.168.88.10
服务器B, DEV开发环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.11
服务器C, FAT测试环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.12
服务器D, PRO生产环境, 部署 apollo-configservice 和 apollo-adminservice ip: 192.168.88.13
DEV、FAT、PRO,需要将服务(configservice, adminservice)和数据库配置,分别独立部署三份
服务默认端口
apollo-portal:8070
apollo-configservice:8080
apollo-adminservice: 8090
三、部署apollo-portal服务
apollo-portal部署一份服务即可,将apollo-portal-x.x.x-github.zip上传值服务器,解压
3.1 执行数据库脚本
apolloportaldb.sql
3.2 添加环境
打开ApolloPortalDB.serverconfig表apollo.portal.envs的value
默认是dev,表示默认只有开发环境
修改为(不区分大小写) : dev,FAT,PRO
表示开启三个环境
3.3 添加meta.servers
打开ApolloPortalDB.serverconfig表
找到key为apollo.portal.meta.servers
的value默认是{},
说明:数据库中的apollo.portal.meta.servers的值和配置文件apollo-portal-x-github\config\apollo-env.properties的值, 是同一内容,只是数据库的优先级更高。
将配置文件apollo-portal-x-github\config\apollo-env.properties中默认的local.meta、dev.meta、fat.meta、… pro.meta 全部注释掉即可
修改数据库中的配置 apollo.portal.meta.servers 的value为: {"DEV":"http://192.168.88.11:8080", "FAT":"http://192.168.88.12:8080", "PRO":"http://192.168.88.13:8080"}
3.4 修改数据库地址
打开目录config/application-github.properties文件
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
3.5 启动或者停止服务
portal服务目录下有scripts\startup.sh 、scripts\shutdown.sh
如果如果已经安装了gitbash, 直接双击startup.sh
即可启动。
启动可能失败,查看后面章节
说明:如果服务正在运行中, 手动修改了meta.servers 或数据库地址后,需要重启服务
四、DEV开发环境, 部署apollo-configservice 和 apollo-adminservice 服务;
将apollo-configservice-x.x.x-github.zip 和 apollo-adminservice-x.x.x-github.zip上传DEV开发服务器,解压
4.1 执行数据库脚本
apolloconfigdb.sql
4.2 配置eureka
打开ApolloConfigDB.serverconfig表
找到key为eureka.service.url
的value默认是http://localhost:8080/eureka/
如果使用默认eureka, eureka.service.url的值不需要修改
如果使用其他独立的eureka服务,可以弃用configservice自带的eureka, 直接将eureka.service.url的的value修改为独立的eureka服务url即可
4.3 修改数据库地址
打开configservice、adminservice这2个服务目录,目录都包含了config/application-github.properties文件
configservice、adminservice 这两个服务数据库都是 ApolloConfigDB
,都修改成下面
spring.datasource.url = jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
spring.datasource.username = root
spring.datasource.password = 123456
4.4 启动或者停止服务
configservice、adminservice这2个服务目录下均有scripts\startup.sh 、scripts\shutdown.sh;
如果如果已经安装了gitbash, configservice、adminservice都需要双击startup.sh启动
。
.启动可能失败,查看后面章节
说明:如果服务正在运行中, 手动修改了eureka.service.url 或数据库地址后,需要重启服务
五、FAT测试环境, 部署apollo-configservice 和 apollo-adminservice 服务;
分布式部署时,每种环境配置都是独立的, 只需要重复相同上面 四步骤 即可;
说明: 配置都是独立的,包含每种环境DEV、FAT、PRO、 数据库的db, 连接数据库配置,都是完全独立的,
apollo-configservice 和 apollo-adminservice 服务也是每种环境独立启动
六、PRO生产开发环境, 部署apollo-configservice 和 apollo-adminservice 服务;
重复相同上面 四步骤 即可;
七、访问管理端页面
访问apollo-portal服务,默认端口是8070:
http://192.168.88.10:8070/ 默认登录账号:apollo
默认密码:admin
登录成功后,右上角的菜单按钮,有系统信息
按钮,查看健康检查是否都正常即可
八、startup.sh启动异常,修改日志目录 mkdir: cannot create directory ‘/opt’: Permission denied
每次执行startup.sh 可能出现没有权限,创建异常
mkdir: cannot create directory ‘/opt’: Permission denied
由于能力有限,这个创建异常未能解决,所以先重新指定日志文件路径,打开编辑scripts/startup.sh
分别修改为:
apollo-portal: LOG_DIR=D:/apollo/portal/log
apollo-configservice: LOG_DIR=D:/apollo/configservice/log
apollo-adminservice: LOG_DIR=D:/apollo/adminservice/log
无异常直接忽略此步骤