天天看點

Apollo源碼解析-搭建調試環境準備工作本地啟動

準備工作

本地運作時環境

  • JDK :1.8+
  • MySQL :5.6.5+
  • Maven :3.6.1
  • IDE :IntelliJ IDEA
Apollo的表結構對timestamp使用了多個default聲明,是以需要5.6.5以上版本。

從官方倉庫 https://github.com/ctripcorp/apollo Fork 出屬于自己的倉庫 https://github.com/wupeixuan/apollo。

使用 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-adminservice

apollo-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

啟動完成後,當打開 http://localhost:8080/ 看到 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

啟動完成後,當打開 http://localhost:8070,出現如下時,表示啟動成功。

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>           

複制