Apollo源码解析-搭建调试环境
准备工作
本地运行时环境
- 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
目录,提供了对应的初始化脚本:
创建 apolloportaldb
根据实际情况修改 flyway-portaldb.properties 中的 flyway.user、flyway.password 和 flyway.url 配置。
在 apollo 项目根目录下执行mvn -n -pportaldb flyway:migrate
导入成功后,表结构如下:
创建 apolloconfigdb
根据实际情况修改 flyway-configdb.properties 中的 flyway.user、flyway.password 和 flyway.url 配置。
在 apollo 项目根目录下执行mvn -n -pconfigdb flyway:migrate
导入成功后,表结构如下:
本地启动
启动 apollo config service 和 apollo admin service
同时启动 apollo-adminservice
和 apollo-configservice
项目,基于 apollo-assembly
项目来启动。
- 配置 idea application
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 配置日志输出文件
- 启动 idea application
启动完成后,当打开 看到 apollo-adminservice 和 apollo-configservice 注册到 eureka 中,代表启动成功。
启动 apollo-portal
- 配置 idea application
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
- 启动 idea application
启动完成后,当打开 ,出现如下时,表示启动成功。
demo 应用接入
为了进行测试,需要创建测试的应用,appid为 100004458 。如下图所示:
- 配置 idea application
main class:com.ctrip.framework.apollo.demo.api.simpleapolloconfigdemo vm options: -denv=dev -ddev_meta=http://localhost:8080 use classpath of module:apollo-demo
- 启动 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>
上一篇: 为什么[]比list()更快?
下一篇: Go基础编程实践(一)—— 操作字符串
推荐阅读
-
spring cloud 阿波罗 apollo 本地开发环境搭建过程
-
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
-
ubuntu 12.10 上 android 编译环境搭建的深入解析
-
php源码怎么搭建网站教程(详解php服务器环境搭建及配置)
-
php源码怎么搭建网站教程(详解php服务器环境搭建及配置)
-
离线搭建AndroidStudio开发环境解析
-
Spring源码分析——调试环境搭建(可能是最省事的构建方法)
-
详解CentOS 7.0源码包搭建LNMP 实际环境搭建
-
python框架flask入门之环境搭建及开启调试
-
使用PHPStorm+XDebug搭建单步调试环境