一、Apollo启动、添加多环境支持

环境介绍:

目前apollo版本:v1.5.0-SNAPSHOT

JDK:1.8+

数据库:192.168.1.109(本地,dev环境),192.168.1.110(uat环境)

实例:192.168.1.109(本地,dev环境,安装portal、adminservice和configservice),192.168.1.111(uat环境,安装adminservice和configservice)。

实例的AdminService和ConfigService部署在同一台机器上。

apollo代码官方网址:https://github.com/ctripcorp/apollo 或国内镜像:https://gitee.com/nobodyiam/apollo

(就提交记录来看,github更活跃一点)

1.数据库准备

下载下来之后,首先执行数据库脚本(使用MySQL 5.6.5或以上版本)。

首先执行根目录下的scripts\db\migration\configdb\V1.0.0__initialization.sql,会在MySQL中创建ApolloConfigDB库,并建表。数据库名称可以更换,表名不能换。

ApolloConfigDB主要用于存储配置信息,为ConfigService和AdminService服务。如果要分环境,则每个环境要分别安装这个库。比如有DEV环境和PRO环境,则要安装两次。(当然也可以在一个MySQL实例中安装两次,库名不同。但这样和apollo高可用的初衷相违背)

然后执行根目录下scripts\db\migration\portaldb\V1.0.0__initialization.sql,这个脚本用于创建ApolloPortalDB。这个库用于Apollo前端管理,服务于ApolloPortal。这个DB不管有多少环境,只用安装一个即可。一个portal可以管理多个环境和集群。

安装结果如图:

如果要同时配置多个环境,执行完portal脚本后,需要修改portal数据库。打开serverconfig表,修改key为apollo.portal.envs的value来添加环境。环境之间使用英文逗号隔开(大小写不敏感)。目前apollo默认支持环境可以参考枚举类com.ctrip.framework.apollo.core.enums.Env

public enum Env{
  LOCAL, DEV, FWS, FAT, UAT, LPT, PRO, TOOLS, UNKNOWN;
}

apollo也支持自定义环境。方式可以参考官方文档:https://github.com/ctripcorp/apollo/wiki/部署&开发遇到的常见问题#42-添加自定义的环境

比如,我需要部署两套环境,UAT和DEV,那么我修改的值就是

至此数据库的准备工作完成。接下来准备打包。

2.打包Apollo

打开根目录下的scripts文件夹,里面有一个build.bat和一个build.sh。windows下执行bat文件,MAC 和 LINUX下执行sh文件。

不过执行前我们还是要修改一下信息。以windows版本为例,使用sublime打开build.bat,apollo_config_db_*配置是连接ApolloConfigDB库的信息,apollo_portal_db_*是连接ApolloPortalDB库的信息。修改好对应的url、username、password。

如果是不同环境,这里要多次打包。有几个ApolloConfigDB就要修改几次apollo_config_db_*的配置再打包。多环境下由于共用一套portal,所以portal相关信息不用修改。

下面的配置里,修改好对应环境的地址。比如我打算将uat环境部署在111上,将dev环境部署在本地(109)上,则修改对应的地址即可。

修改后的配置示例:

@echo off

rem apollo config db info
set apollo_config_db_url="jdbc:mysql://192.168.1.110:3306/ApolloConfigDB?characterEncoding=utf8"
set apollo_config_db_username="yourusername"
set apollo_config_db_password="yourpassword"

rem apollo portal db info
set apollo_portal_db_url="jdbc:mysql://192.168.1.109:3306/ApolloPortalDB?characterEncoding=utf8"
set apollo_portal_db_username="yourusername"
set apollo_portal_db_password="yourpassword"

rem meta server url, different environments should have different meta server addresses
set dev_meta="http://192.168.1.109:8080"
set fat_meta="http://localhost:8080"
set uat_meta="http://192.168.1.111:8080"
set pro_meta="http://localhost:8080"

......

由于我没有用到fat环境和pro环境,所以这两个环境的meta我没有修改。

打包好后,分别去apollo-adminService、apollo-configservice 和 apollo-portal下的target目录下拿zip包。

将configservice和adminservice的zip包拷贝到111中并解压。解压后的文件如图(以configservice为例):

重新打包109环境的包后,同样将portal、adminservice 和 configservice解压到109。

多环境下,要修改portal的配置文件。打开portal下的config目录,修改apollo-env.properties文件:

修改完成后就可以准备启动apollo了。

3.启动Apollo

分别找到configservice、adminservice和portal下的scripts目录,执行startup.sh即可启动。

启动要按照configservice、adminservice、portal 的顺序启动。因为启动configservice的时候会启动其自带的Eureka。adminservice需要注册到Eureka中。portal需要发现各环境的adminservice。

这里特别注意,多环境下,一定要先将所有环境的adminservice和configservice都启动后,最后再启动portal。

 

至此,apollo就安装启动完成。分别访问109和111的8080端口查看Eureka,可以看到configservice和adminservice都已经注册到各自环境的Eureka中,打开portal所在服务器的8070端口打开apollo管理界面(默认用户名/密码为apollo/admin)可以看到默认应用已经出现了不同环境。效果图如下:

uat环境:

 

dev环境:

portal:

 

官方部署指南:https://github.com/ctripcorp/apollo/wiki/分布式部署指南

教学视频地址:https://pan.baidu.com/s/1rUAphfVq9fnEMqRrscDk-w#list/path=%2F%制作视频%2Fapollo&parentPath=%2F制作视频 (感谢github用户 @lingjiaju

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值