1. 程式人生 > >Apollo學習(一):在本地Windows系統下搭建Apollo配置中心

Apollo學習(一):在本地Windows系統下搭建Apollo配置中心

說明

在學習Spring Cloud時,學習了Spring Cloud Config作為配置中心來實現微服務例項的配置。但是由於Config自身的侷限性,公司採用了攜程的Apollo作為配置中心,於是通過官方文件和網上資料進行了學習,在這裡進行記錄總結下。

正文

Apollo特性

Spring Cloud Config 和 Apollo對比:

功能點 Apollo Spring Cloud Config
配置介面 統一介面管理不同環境\叢集配置 無介面,通過git操作
配置生效時間 實時(1s) 重啟生效,或者Refresh,或git hook+MQ擴充套件
版本管理 提供釋出歷史,支援回滾 通過git操作,可以回滾
灰度釋出 支援 不支援
稽核\審計\授權 介面操作,支援修改和釋出許可權分離 通過git倉庫設定,不支援許可權分離
配置監控 在介面可以看到例項使用的配置清單 不支援
客戶端支援 提供Java和.NET的原生客戶端,支援Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,提供了Http介面,提供開放平臺API Spring Annotation

通過指令碼快速部署

Apollo官方提供了兩種快速部署的方式,一種是通過GitHub下載,另一種通過網盤下載,這裡使用網盤下載


在安裝前,Apollo對Java和MySQL的版本有要求:

建立資料庫

Apollo服務端需要兩個資料庫 ApolloPortalDB和ApolloConfigDB,解壓後可以得到兩個sql檔案,通過在msyql client匯入sql檔案建立資料庫
source /path/sql/apolloportaldb.sql
source /path/sql/apolloconfigdb.sql

配置資料庫連線資訊

在解壓後可以看到demo.sh指令碼檔案,通過修改該檔案來配置資料庫的資訊

#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=密碼(如果沒有密碼,留空即可)

指令碼啟動

在指令碼中可以看到

config_server_url=http://localhost:8080
admin_server_url=http://localhost:8090
eureka_service_url=$config_server_url/eureka/
portal_url=http://localhost:8070

由此看出Apollo集成了Eureka註冊中心,config_server的地址就是eurek的地址。確保8080 8090 8070 這三個埠沒有被佔用。

通過git 執行指令碼./demo.sh start 啟動服務
在這裡插入圖片描述
訪問http://localhost:8070 通過介面使用Apollo配置中心,輸入使用者名稱apollo密碼admin登入。

注意:
使用該方式不支援增加環境,只有通過分散式部署才可以新增環境
使用該方式埠號不能修改,其他電腦無法使用配置中心

使用自建專案使用配置中心,這裡建立Spring Boot專案,在resources下建立META-INF目錄,建立app.properties檔案,配置app.id=** 和 apollo.meta=http://localhost:8080,更為具體的使用方式詳見:Apollo java客戶端使用指南

通過./demo.sh stop停止服務