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 目錄,提供了對應的初始化腳本:

創建 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-adminserviceapollo-configservice 項目,基於 apollo-assembly 項目來啟動。

  1. 配置 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 配置日志輸出文件
  1. 啟動 IDEA Application

啟動完成后,當打開 http://localhost:8080/ 看到 APOLLO-ADMINSERVICE 和 APOLLO-CONFIGSERVICE 注冊到 Eureka 中,代表啟動成功。

啟動 Apollo-Portal

  1. 配置 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
  1. 啟動 IDEA Application

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

Demo 應用接入

為了進行測試,需要創建測試的應用,Appid為 100004458 。如下圖所示:

  1. 配置 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
  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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM