目录
- 获取源码
- 创建数据库
- 导入 scripts/sql 文件夹下的两个sql文件(apolloconfigdb.sql、apolloportaldb.sql)
- 手动导入SQL创建
- 通过Flyway导入SQL创建
- 调整服务端配置
- 调整ApolloPortalDB配置
- apollo.portal.envs - 可支持的环境列表
- organizations - 部门列表
- 调整ApolloConfigDB配置
- eureka.service.url - Eureka服务Url
- 编译打包
- 配置数据库连接信息、各环境meta service地址
- 执行编译、打包
- 部署Apollo服务端
- 部署apollo-configservice、apollo-adminservice
- 部署apollo-portal
- 访问apollo
获取源码
从GitHub Release页面下载Source code包或直接clone源码
创建数据库
Apollo服务端共需要两个数据库,ApolloPortalDB
和ApolloConfigDB
注:ApolloPortalDB只需要执行部署一次即可,而ApolloConfigDB需要在每个环境部署一套,如:有开发(dev)和生产(pro)两个环境,则需要在开发环境和生产环境分别部署ApolloConfigDB数据库,ApolloPortalDB数据库只需要在其中的一个环境部署。
导入 scripts/sql 文件夹下的两个sql文件(apolloconfigdb.sql、apolloportaldb.sql)
可以根据实际情况选择通过手动导入SQL或是通过Flyway自动导入SQL创建。
手动导入SQL创建
通过各种MySQL客户端导入
1.3.0版本开始为了支持Flyway,sql位置和命名从之前的
scripts/sql/apolloconfigdb.sql
改为了scripts/db/migration/configdb/V1.0.0__initialization.sql
,
通过Flyway导入SQL创建
1、需要1.3.0及以上版本。
2、根据实际情况修改flyway-portaldb.properties中的
flyway.user
、flyway.password
和flyway.url
配置。3、在apollo项目根目录下执行
mvn -N -Pportaldb flyway:migrate
调整服务端配置
调整ApolloPortalDB配置
配置项统一存储在ApolloPortalDB.ServerConfig表中,也可以通过管理员工具 - 系统参数
页面进行配置,无特殊说明则修改完一分钟实时生效。
apollo.portal.envs - 可支持的环境列表
默认值是dev,如果portal需要管理多个环境的话,以逗号分隔即可(大小写不敏感),如:
DEV,FAT,UAT,PRO
修改完需要重启生效
organizations - 部门列表
Portal中新建的App都需要选择部门,所以需要在这里配置可选的部门信息,样例如下:
[{"orgId":"TEST1","orgName":"样例部门1"},{"orgId":"TEST2","orgName":"样例部门2"}]
调整ApolloConfigDB配置
配置项统一存储在ApolloConfigDB.ServerConfig表中,需要注意每个环境的ApolloConfigDB.ServerConfig都需要单独配置,修改完一分钟实时生效。
eureka.service.url - Eureka服务Url
不管是apollo-configservice还是apollo-adminservice都需要向eureka服务注册,所以需要配置eureka服务地址。 按照目前的实现,apollo-configservice本身就是一个eureka服务,所以只需要填入apollo-configservice的地址即可,如有多个,用逗号分隔(注意不要忘了/eureka/后缀)。
编译打包
配置数据库连接信息、各环境meta service地址
Apollo服务端需要知道如何连接到你前面创建的数据库,所以需要编辑 scripts/build.sh
,修改ApolloPortalDB和ApolloConfigDB相关的数据库连接信息。Apollo Portal需要在不同的环境访问不同的meta service(apollo-configservice)地址,所以需要在打包时提供这些信息,如果某个环境不需要,也可以直接删除对应的配置项
如需实现上图所示的密文,需对
apollo-common
这个项目进行稍微调整
- 在这个工程的pom文件中加入jasypt依赖
<!--密文处理 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
- 在这个工程的application.properties文件中加入
// *33F5474A1CCD637271E4D3F3BBD66E431358D75E值随意设置
jasypt.encryptor.password=*33F5474A1CCD637271E4D3F3BBD66E431358D75E
- 下载 jasypt 的jar包,通过Windows的cmd 执行如下命令,得到加密后的密文
// input的值为数据库的明文密码,password为application.properties中设置的值
java -cp E:\Downloads\jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="12345678" password=*33F5474A1CCD637271E4D3F3BBD66E431358D75E algorithm=PBEWithMD5AndDES
执行编译、打包
./build.sh
执行完后,会在apollo-adminservice、apollo-configservice、apollo-portal 生成对应的压缩包。
部署Apollo服务端
部署apollo-configservice、apollo-adminservice
将对应环境的apollo-configservice-x.x.x-github.zip
apollo-adminservice-x.x.x-github.zip
上传到服务器上,解压后执行scripts/startup.sh即可。可以在scripts/startup.sh中按照实际的环境设置一个JVM内存
export JAVA_OPTS="-server -Xms6144m -Xmx6144m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=4096m -XX:MaxNewSize=4096m -XX:SurvivorRatio=18"
注:先启动apollo-configservice,后启动 apollo-adminservice
部署apollo-portal
将apollo-portal-x.x.x-github.zip
上传到服务器上,解压后执行scripts/startup.sh即可。如需停止服务,执行scripts/shutdown.sh。以在scripts/startup.sh中按照实际的环境设置一个JVM内存。
export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=384m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:SurvivorRatio=22"
注1:apollo-portal需要等apollo-configservice、apollo-adminservice启动后再启动
注2:如果需要修改JVM参数,可以修改scripts/startup.sh的
JAVA_OPTS
部分。注3:如要调整各个服务的日志输出路径,可以修改scripts/startup.sh和apollo-xxx.conf
LOG_DIR
。注4:如要调整服务的监听端口,可以修改scripts/startup.sh中的
SERVER_PORT
。
访问apollo
- 输入 http://ip:8070 打开apollo配置中,初始用户为 apollo/admin