欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-15 14:45:08
准备工作 本地运行时环境 JDK :1.8+ MySQL :5.6.5+ Maven :3.6.1 IDE :IntelliJ IDEA Apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。 从官方仓库 "https://github.com/ctrip ......

准备工作

本地运行时环境

  • jdk :1.8+
  • mysql :5.6.5+
  • maven :3.6.1
  • ide :intellij idea

apollo的表结构对timestamp使用了多个default声明,所以需要5.6.5以上版本。

从官方仓库 fork 出属于自己的仓库 。

使用 intellij idea 从 fork 出来的仓库拉取代码。拉取完成后,maven 会下载所需依赖包。

创建数据库

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

  • apolloportaldb
  • apolloconfigdb

apolloportaldb 只需要在生产环境部署一个即可,而 apolloconfigdb 需要在每个环境部署一套,如 fat、uat 和 pro 分别部署3套 apolloconfigdb。

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

在 apollo 项目下的 scripts 目录,提供了对应的初始化脚本:
Apollo源码解析-搭建调试环境

创建 apolloportaldb

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

在 apollo 项目根目录下执行mvn -n -pportaldb flyway:migrate

导入成功后,表结构如下:
Apollo源码解析-搭建调试环境

创建 apolloconfigdb

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

在 apollo 项目根目录下执行mvn -n -pconfigdb flyway:migrate

导入成功后,表结构如下:
Apollo源码解析-搭建调试环境

本地启动

启动 apollo config service 和 apollo admin service

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

  1. 配置 idea application

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

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
  • spring.datasource 配置连接 apolloconfigdb 数据库
  • logging.file 配置日志输出文件
  1. 启动 idea application

启动完成后,当打开 看到 apollo-adminservice 和 apollo-configservice 注册到 eureka 中,代表启动成功。

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

启动 apollo-portal

  1. 配置 idea application

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

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

内置账号

  • username :apollo
  • password :admin
  1. 启动 idea application

启动完成后,当打开 ,出现如下时,表示启动成功。

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

demo 应用接入

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

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

  1. 配置 idea application

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

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

客户端日志级别默认是debug,如果需要调整,可以通过修改apollo-demo/src/main/resources/log4j2.xml中的level配置

<logger name="com.ctrip.framework.apollo" additivity="false" level="trace">
    <appenderref ref="async" level="debug"/>
</logger>