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';| version | 5.7.11 |
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.3.1 手動打包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
二、安裝步驟
2.1 創建數據庫
Apollo服務端共需要兩個數據庫:ApolloPortalDB和ApolloConfigDB,我們把數據庫、表的創建和樣例數據都分別準備了sql文件,只需要導入數據庫即可。
注意:如果你本地已經創建過Apollo數據庫,請注意備份數據。我們準備的sql文件會清空Apollo相關的表。
2.1.1 創建ApolloPortalDB
通過各種MySQL客戶端導入sql/apolloportaldb.sql即可。
下面以MySQL原生客戶端為例:
source /your_local_path/sql/apolloportaldb.sql導入成功后,可以通過執行以下sql語句來驗證:
select `Id`, `AppId`, `Name` from ApolloPortalDB.App;| 1 | SampleApp | Sample App |
2.1.2 創建ApolloConfigDB
通過各種MySQL客戶端導入sql/apolloconfigdb.sql即可。
下面以MySQL原生客戶端為例:
source /your_local_path/sql/apolloconfigdb.sql導入成功后,可以通過執行以下sql語句來驗證:
select `NamespaceId`, `Key`, `Value`, `Comment` from ApolloConfigDB.Item;| 1 | timeout | 100 | sample timeout配置 |
2.2 配置數據庫連接信息
Apollo服務端需要知道如何連接到你前面創建的數據庫,所以需要編輯demo.sh,修改ApolloPortalDB和ApolloConfigDB相關的數據庫連接串信息。
注意:填入的用戶需要具備對ApolloPortalDB和ApolloConfigDB數據的讀寫權限。
#apollo config db info apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 apollo_config_db_username=用戶名 apollo_config_db_password=密碼(如果沒有密碼,留空即可) ? # apollo portal db info apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8 apollo_portal_db_username=用戶名 apollo_portal_db_password=密碼(如果沒有密碼,留空即可)注意:不要修改demo.sh的其它部分
三、啟動Apollo配置中心
3.1 確保端口未被占用
Quick Start腳本會在本地啟動3個服務,分別使用8070, 8080, 8090端口,請確保這3個端口當前沒有被使用。
例如,在Linux/Mac下,可以通過如下命令檢查:
lsof -i:80803.2 執行啟動腳本
./demo.sh start當看到如下輸出后,就說明啟動成功了!
==== 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(它自己)注冊服務,但是因為在啟動過程中,自己還沒起來,所以會報這個錯。后面會進行重試的動作,所以等自己服務起來后就會注冊正常了。
3.4 注意
Quick Start只是用來幫助大家快速體驗Apollo項目,具體實際使用時請參考:分布式部署指南。
另外需要注意的是Quick Start不支持增加環境,只有通過分布式部署才可以新增環境,同樣請參考:分布式部署指南
總結
以上是生活随笔為你收集整理的Apollo分布式配置中心在本地的安装教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apollo分布式配置中心入门
- 下一篇: Apollo分布式配置中心在java的简