准备工作

本地运行时环境

  • JDK :1.8+
  • MySQL :5.6.5+
  • Maven :3.6.1
  • IDE :IntelliJ IDEA

从官方仓库 https://github.com/ctripcorp/apollo Fork 出属于自己的仓库 https://github.com/wupeixuan/apollo

使用 IntelliJ IDEA 从 Fork 出来的仓库拉取代码。拉取完成后,Maven 会下载所需依赖包。

创建数据库

Apollo 服务端共有两个数据库:

  • ApolloPortalDB
  • ApolloConfigDB

可以根据实际情况选择通过手动导入SQL或是通过Flyway自动导入SQL创建。

在 Apollo 项目下的 scripts 目录,提供了对应的初始化脚本:

Apollo源码解析-搭建调试环境-LMLPHP

创建 ApolloPortalDB

根据实际情况修改 flyway-portaldb.properties 中的 flyway.user、flyway.password 和 flyway.url 配置。

在 apollo 项目根目录下执行mvn -N -Pportaldb flyway:migrate

导入成功后,表结构如下:

Apollo源码解析-搭建调试环境-LMLPHP

创建 ApolloConfigDB

根据实际情况修改 flyway-configdb.properties 中的 flyway.user、flyway.password 和 flyway.url 配置。

在 apollo 项目根目录下执行mvn -N -Pconfigdb flyway:migrate

导入成功后,表结构如下:

Apollo源码解析-搭建调试环境-LMLPHP

本地启动

启动 Apollo Config Service 和 Apollo Admin Service

同时启动 apollo-adminserviceapollo-configservice 项目,基于 apollo-assembly 项目来启动。

  1. 配置 IDEA Application

Apollo源码解析-搭建调试环境-LMLPHP

Main class:com.ctrip.framework.apollo.assembly.ApolloApplication

VM options:
-Dapollo_profile=github
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
-Dspring.datasource.username=root
-Dspring.datasource.password=123456
-Dlogging.file=D:/logs/apollo-assembly.log Program arguments:--configservice --adminservice Use classpath of module:apollo-assembly
  1. 启动 IDEA Application

启动完成后,当打开 http://localhost:8080/ 看到 APOLLO-ADMINSERVICE 和 APOLLO-CONFIGSERVICE 注册到 Eureka 中,代表启动成功。

Apollo源码解析-搭建调试环境-LMLPHP

启动 Apollo-Portal

  1. 配置 IDEA Application

Apollo源码解析-搭建调试环境-LMLPHP

Main class:com.ctrip.framework.apollo.portal.PortalApplication

VM options:
-Dapollo_profile=github,auth
-Ddev_meta=http://localhost:8080/
-Dserver.port=8070
-Dspring.datasource.url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
-Dspring.datasource.username=root
-Dspring.datasource.password=123456
-Dlogging.file=D:/logsh/apollo-portal.log Use classpath of module:apollo-portal
  1. 启动 IDEA Application

启动完成后,当打开 http://localhost:8070,出现如下时,表示启动成功。

Apollo源码解析-搭建调试环境-LMLPHP

Demo 应用接入

为了进行测试,需要创建测试的应用,Appid为 100004458 。如下图所示:

Apollo源码解析-搭建调试环境-LMLPHP

  1. 配置 IDEA Application

Apollo源码解析-搭建调试环境-LMLPHP

Main class:com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo

VM options:
-Denv=dev
-Ddev_meta=http://localhost:8080 Use classpath of module:apollo-demo
  1. 启动 IDEA Application

成功后,输出日志如下:

Apollo Config Demo. Please input key to get the value. Input quit to exit.

输入 timeout ,回车,输出如下:

timeout
> [apollo-demo][main]2019-09-17 01:40:32,775 INFO [com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo] Loading key : timeout with value: 100
<logger name="com.ctrip.framework.apollo" additivity="false" level="trace">
<AppenderRef ref="Async" level="DEBUG"/>
</logger>
04-26 02:36