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的版本有要求:
- Java 必須是1.8+
- MySQL 必須是5.6.5+ 要在本地安裝多版本的MySQL服務,請看之前的博文《win10下安裝不同版本的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
停止服務