一、Apollo配置中心介紹
Apollo(阿波羅)是攜程框架部門研發的開源配置管理中心,能夠集中化管理應用不同環境、不同集群的配置,配置修改后能夠實時推送到應用端,並且具備規范的額權限、流程治理等特性。
Apollo支持的四個維度管理的配置:
- application (應用)
- environment (環境)
- cluster (集群)
- namespace (命名空間)
同時,Apollo基於開源模式開發,開源地址:https://github.com/ctripcorp/apollo
這里需要提一點的就是
二、Apollo配置中心部署
1.環境准備
jdk8
mysql5.7
2.下載安裝包
前往github下載安裝包 https://codeload.github.com/nobodyiam/apollo-build-scripts/zip/refs/heads/master
這里下載的安裝包是已經編譯並打包好的安裝包,解壓后目錄結構如下
-client Apollo客戶端示例(可忽略)
-images 靜態圖片資源(可忽略)
-portal 管理系統目錄
-service 核心功能目錄
-sql 初始化數據庫sql腳本目錄
-demo.sh 啟動腳本
3.配置中心部署
3.1.創建數據庫
將安裝包解壓后的sql目錄下的兩個sql腳本拿到mysql中直接執行,完成后就會發現mysql中多了兩個數據庫並且庫里也有部分數據表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| apolloconfigdb |
| apolloportaldb |
+--------------------+
3.2.修改啟動腳本demo.sh
在編輯器中打開demo.sh啟動腳本,修改腳本最前面的兩個數據庫配置,將數據庫鏈接,帳號,密碼配置正確
# apollo config db info apollo_config_db_url="jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai" apollo_config_db_username=root apollo_config_db_password=1234 # apollo portal db info apollo_portal_db_url="jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8&serverTimezone=Asia/Shanghai" apollo_portal_db_username=root apollo_portal_db_password=1234
3.3.打開控制台並運行啟動腳本 將Apollo配置中心啟動
配置中心啟動成功后進程將在后台運行所以控制台窗口會消失,不必擔心
# 啟動配置中心 demo.sh start # 關閉配置中心 demo.sh stop
三、訪問Apollo配置中心
打開瀏覽器,輸入http://localhost:8070/回車即可進入Apollo管理頁面
默認登錄帳號為apollo 密碼為admin
進入后可以看到系統已經默認創建了一個示例項目(sampleApp)
您可以根據你的項目實際,創建新的配置項目,在新的配置項目下創建集群、namespace以及新增配置項
這里先稍微提一下,Apollo配置中心的四個配置維度以及服務端的三個服務
服務端三個服務
portal——項目配置管理系統,你訪問的8070端口就是訪問的這個服務,該服務包含了后台管理系統以及創建的項目信息,使用portal這個數據庫
configService——配置服務,向其他業務系統提供配置推拉更新的服務,業務系統和該服務建立連接來獲取項目配置,使用config這個數據庫
adminService——環境管理,負責指定環境的所有配置修改、發布、回滾、以及歷史記錄等等一系列的后台管理功能,使用config這個數據庫
配置的四個維度
application——項目,項目可以認為是一級維度,用來區分不同項目的配置
environment——環境,諸如dev、sit、uat等等的這類環境,Apollo的這個環境要支持的話稍微有些復雜,后面再做詳細交流,一個環境對應了一套配置服務,如果你要支持三個環境,那就要啟動2*3+1=7個Apollo服務
cluster——集群,攜程為了自己的某些實際情況加的一個維度,個人感覺對大部分項目都用不上。比如同一個項目,北京部署了2個,上海部署了2個,北京部署的訪問的oss為***beijing.com,上海部署的訪問的oss為***shanghai.com,這種情況就需要用到cluster,一般情況下我們都用默認,后面再做詳細交流
namespace——命名空間,這個比較好,比如一個項目的配置,包含了關系型數據庫信息、緩存數據庫信息、支付相關配置等等,為了避免所有的配置都在一個里面不便管理,就可以在配置中添加多個命名空間,關系型數據庫可以創建一個“datasource”命名空間,緩存數據庫可以創建“cache”,支付的配置可以創建“pay”,這樣項目在讀取配置的時候直接讀取這三個中的一個或多個配置,后面再做詳細交流
至此,Apollo配置中心單機部署已經完成
