Apollo阿波羅配置中心docker


前言

在分布式系統中,要改個配置涉及到很多個系統,一個一個改效率低下,吃力不討好。用配置中心可以解決這個問題。當然配置中心有不少,以下對比的表格是照搬Apollo Wiki的。

功能點 Apollo Spring Cloud Config 備注
配置界面 一個界面管理不同環境、不同集群配置 無,需要通過git操作
配置生效時間 實時 重啟生效,或手動refresh生效 Spring Cloud Config需要通過Git webhook,加上額外的消息隊列才能支持實時生效
版本管理 界面上直接提供發布歷史和回滾按鈕 無,需要通過git操作
灰度發布 支持 不支持
授權、審核、審計 界面上直接支持,而且支持修改、發布權限分離 需要通過git倉庫設置,且不支持修改、發布權限分離
實例配置監控 可以方便的看到當前哪些客戶端在使用哪些配置 不支持
配置獲取性能 快,通過數據庫訪問,還有緩存支持 較慢,需要從git clone repository,然后從文件系統讀取
客戶端支持 原生支持所有Java和.Net應用,提供API支持其它語言應用,同時也支持Spring annotation獲取配置 支持Spring應用,提供annotation獲取配置 Apollo的適用范圍更廣一些

本文采用了Apollo,然而Apollo的沒有爽一點的docker鏡像,所以自己寫了一個docker hubgithub

使用方法

  • 鏡像中包含configservice、adminservice、portal,默認configservice。如要更改成adminservice,則在運行參數中添加對應xxx.jar,如下
docker run chenchuxin/apollo adminservice.jar
  • 要修改配置直接用環境變量,例如
docker run \
-e spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 \
-e spring_datasource_username=ccx \
chenchuxin/apollo
  • 一個比較完整的例子
docker run \
-e spring_datasource_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8 \
-e spring_datasource_username=root \
-e spring_datasource_password=xxx \
-e server.port=8080 \
-e logging.file=/opt/logs/configservice.log \
-v /opt/logs:/var/log/apollo \
--network host \
--restart always \
--name apollo_configservice \
chenchuxin/apollo \
configservice.jar
  • 項目提供了簡單的docker-compose.yml,修改成一下配置即可用
docker-compose up -d

注意

portal設置meta_server的時候,不要用環境變量設置,在運行參數用-D設置,如

docker run chenchuxin/apollo -Ddev_meta=http://localhost:8080 portal.jar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM