Apollo阿波羅配置中心docker

前言

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

功能點 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 hubgithubgit

使用方法

  • 鏡像中包含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設置,如github

docker run chenchuxin/apollo -Ddev_meta=http://localhost:8080 portal.jar
相關文章
相關標籤/搜索