簡介
Apollo(阿波羅)是攜程框架部門研發的分布式配置中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,并且具備規范的權限、流程治理等特性,適用于微服務配置管理場景,
服務端基于Spring Boot和Spring Cloud開發,打包后可以直接運行,不需要額外安裝Tomcat等應用容器,
Java客戶端 不依賴任何框架,能夠運行于所有Java運行時環境,同時對Spring/Spring Boot環境也有較好的支持,
.Net客戶端 不依賴任何框架,能夠運行于所有.Net運行時環境,
官方 GitHub: https://github.com/ctripcorp/apollo
官方 Gitee: https://gitee.com/nobodyiam/apollo
一、準備作業
1.1 Java
- Apollo服務端:1.8+
- Apollo客戶端:1.7+
由于Quick Start會在本地同時啟動服務端和客戶端,所以需要在本地安裝Java 1.8+,
在配置好后,可以通過如下命令檢查:
java -version
樣例輸出:
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)
Windows用戶請確保JAVA_HOME環境變數已經設定,
1.2 MySQL
- 版本要求:5.6.5+
Apollo的表結構對timestamp使用了多個default宣告,所以需要5.6.5以上版本,
連接上MySQL后,可以通過如下命令檢查:
SHOW VARIABLES WHERE Variable_name = 'version';

1.3 下載Quick Start安裝包
我們準備好了一個Quick Start安裝包,大家只需要下載到本地,就可以直接使用,免去了編譯、打包程序,
安裝包共50M,如果訪問github網速不給力的話,可以從百度網盤下載,
- 從Github下載
- checkout或下載apollo-build-scripts專案
- 由于Quick Start專案比較大,所以放在了另外的repository,請注意專案地址
- https://github.com/nobodyiam/apollo-build-scripts
- 從百度網盤下載
- 通過網盤鏈接下載,提取碼: 9wwe
- 下載到本地后,在本地解壓apollo-quick-start.zip
- 為啥安裝包要58M這么大?
- 因為這是一個可以自啟動的jar包,里面包含了所有依賴jar包以及一個內置的tomcat容器
1.4 手動打包Quick Start安裝包
Quick Start只針對本地測驗使用,所以一般用戶不需要自己下載原始碼打包,只需要下載已經打好的包即可,不過也有部分用戶希望在修改代碼后重新打包,那么可以參考如下步驟:
- 修改apollo-configservice, apollo-adminservice和apollo-portal的pom.xml,注釋掉spring-boot-maven-plugin和maven-assembly-plugin
- 在根目錄下執行
mvn clean package -pl apollo-assembly -am -DskipTests=true - 復制apollo-assembly/target下的jar包,rename為apollo-all-in-one.jar
wget https://github.com/apolloconfig/apollo-build-scripts/archive/refs/heads/master.zip #下載
unzip master.zip #解壓
二、安裝步驟
2.1 創建資料庫
Apollo服務端共需要兩個資料庫:ApolloPortalDB和ApolloConfigDB,我們把資料庫、表的創建和樣例資料都分別準備了sql檔案,只需要匯入資料庫即可,
注意:如果你本地已經創建過Apollo資料庫,請注意備份資料,我們準備的sql檔案會清空Apollo相關的表,
下面以MySQL原生客戶端為例:
友情提示:可以使用Navcat連接工具匯入SQL
source /your_local_path/sql/apolloportaldb.sql
source /your_local_path/sql/apolloconfigdb.sql
匯入成功后,可以通過執行以下sql陳述句來驗證:
select `Id`, `AppId`, `Name` from ApolloPortalDB.App;
select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;


2.2 配置資料庫連接資訊
Apollo服務端需要知道如何連接到你前面創建的資料庫,所以需要編輯demo.sh,修改ApolloPortalDB和ApolloConfigDB相關的資料庫連接串資訊,
注意:不要修改demo.sh的其它部分!!!

三、啟動Apollo配置中心
Quick Start腳本會在本地啟動3個服務,分別使用8070, 8080, 8090埠,請確保這3個埠當前沒有被使用
例如,在Linux/Mac下,可以通過如下命令檢查:
lsof -i:8080
netstat -anp | grep 8080
3.2 執行啟動腳本
./demo.sh start #啟動
./demo.sh stop #關閉
當看到如下輸出后,就說明啟動成功了!
==== starting service ====
Service logging file is ./service/apollo-service.log
Started [10768]
Waiting for config service startup.......
Config service started. You may visit http://localhost:8080 for service status now!
Waiting for admin service startup....
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Started [10846]
Waiting for portal startup......
Portal started. You can visit http://localhost:8070 now!
3.3 例外排查
如果啟動遇到了例外,可以分別查看service和portal目錄下的log檔案排查問題,
注:在啟動apollo-configservice的程序中會在日志中輸出eureka注冊失敗的資訊,如
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused,需要注意的是,這個是預期的情況,因為apollo-configservice需要向Meta Server(它自己)注冊服務,但是因為在啟動程序中,自己還沒起來,所以會報這個錯,后面會進行重試的動作,所以等自己服務起來后就會注冊正常了,查看阿波羅日志詳情
tail -f portal/apollo-portal.log tail -f service/apollo-service.log
四、使用Apollo配置中心
4.1 查看樣例配置
打開瀏覽器輸入:http://localhost:8070 用戶名/密碼:apollo/admin


打開瀏覽器輸入:http://localhost:8080

打開瀏覽器輸入:http://localhost:8090

4.2 運行客戶端程式
./demo.sh client #運行客戶端
忽略前面的除錯資訊,輸入timeout,會看到如下資訊:

4.3 修改配置并發布
1、在配置界面點擊timeout這一項的編輯按鈕

2、在彈出框中把值改成200并提交配置修改

3、點擊發布按鈕,并填寫發布資訊發布

如果客戶端一直在運行的話,在配置發布后就會監聽到配置變化,并輸出修改的配置資訊:

參考鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/453754.html
標籤:Java
上一篇:Spring系列28:@Transactional事務原始碼分析
下一篇:redis的基本命令學習
