攜程Apollo分佈式配置中心搭建(一)

什麼是分佈式配置中心

項目中配置文件比較繁雜,而且不同環境的不同配置修改相對頻繁,每次發佈都需要對應修改配置,如果配置出現錯誤,需要重新打包發佈,時間成本較高,因此需要做統一的分佈式註冊中心,能做到自動更新配置文件信息,解決以上問題。

常用分佈式配置中心框架

註冊中心

配置存儲

 

時效性

數據模型

維護性

優點

缺點

Disconf

Zookpeer

實時推送

支持傳統的配置文件模式,亦支持KV結構數據

 

提供界面操作

 

基於分佈式的Zookeeper來實時推送穩定性、實效性、易用性上均優於其他

源碼較多,閱讀和使用起來相對較複雜

zookpeer

zookpeer

實時推送

支持傳統的配置文件模式,亦支持KV結構數

 

命令操作

實時推送穩定性、實效性

開發量大

 

 

diamond

mysql

每隔15s拉一次全量數據

只支持KV結構的數據

提供界面操

簡單、可靠、易用

數據模型不支持文件,使用不方便

 

Spring Cloud Config

git

人工批量刷新

文件模式

 

git操作

       

簡單、可靠、易用

需要依賴GIT,並且更新GIT

 

 

分佈式配置中心 解決分佈式配置文件管理

Apollo阿波羅簡介

 

Apollo(阿波羅)是攜程框架部門研發的分佈式配置中心,能夠集中化管理應用不同環境、不同集羣的配置,配置修改後能夠實時推送到應用端,並且具備規範的權限、流程治理等特性,適用於微服務配置管理場景。

Apollo阿波羅特點

用戶在Apollo修改完配置併發布後,客戶端能實時(1秒)接收到最新的配置,並通知到應用程序。

統一管理不同環境、不同集羣的配置

 

所有的配置發佈都有版本概念,從而可以方便的支持配置的回滾。

配置修改實時生效(熱發佈)

用戶在Apollo修改完配置併發布後,客戶端能實時(1秒)接收到最新的配置,並通知到應用程序

版本發佈管理

所有的配置發佈都有版本概念,從而可以方便的支持配置的回滾

灰度發佈

支持配置的灰度發佈,比如點了發佈後,只對部分應用實例生效,等觀察一段時間沒問題後再推給所有應用實例。

權限管理、發佈審覈、操作審計

應用和配置的管理都有完善的權限管理機制,對配置的管理還分爲了編輯和發佈兩個環節,從而減少人爲的錯誤。

所有的操作都有審計日誌,可以方便的追蹤問題。

同時提供了Http接口,非Java和.Net應用也可以方便的使用

部署簡單

配置中心作爲基礎服務,可用性要求非常高,這就要求Apollo對外部依賴儘可能地少

目前唯一的外部依賴是MySQL,所以部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來

Apollo還提供了打包腳本,一鍵就可以生成所有需要的安裝包,並且支持自定義運行時參數

 

搭建Apollo配置中心

 下載aploll配置中心 https://github.com/nobodyiam/apollo-build-scripts

 

配置數據庫參數配置

創建數據庫

 

Apollo服務端共需要兩個數據庫:ApolloPortalDB和ApolloConfigDB,我們把數據庫、表的創建和樣例數據都分別準備了sql文件,只需要導入數據庫即可。

 

配置數據庫連接信息

Apollo服務端需要知道如何連接到你前面創建的數據庫,所以需要編輯demo.sh,修改ApolloPortalDB和ApolloConfigDB相關的數據庫連接串信息。最好在上傳服務器之前修改demo.sh文件:

注意:填入的用戶需要具備對ApolloPortalDB和ApolloConfigDB數據的讀寫權限,最好直接使用root用戶

在Linux服務器安裝JDK8 以及MySQL5.7以上版本,也可以將MySQL安裝在其他位置只要在demo.sh修改MySQL文件的路徑即可,如下:

步驟1中修改相應的MySQL相應的地址、用戶、密碼

步驟2中的localhost修改爲Apollo所部署的服務器IP,Apollo只能部署在Linux環境

啓動Apollo配置中心

確保端口未被佔用

Quick Start腳本會在本地啓動3個服務,分別使用8070, 8080, 8090端口,請確保這3個端口當前沒有被使用。

例如,在Linux/Mac下,可以通過如下命令檢查:

 

執行啓動腳本

./demo.sh start

當提示沒有權限時 使用如下命令

chmod 777  demo.sh 

然後繼續執行啓動腳本

當看到如下輸出後,就說明啓動成功了!

使用Apollo配置中心

訪問網址:打開http://localhost:8070

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章