• -------------------------------------------------------------
  • ====================================

Apollo阿波罗配置中心docker

docker dewbay 5年前 (2019-04-12) 3355次浏览 已收录 0个评论 扫描二维码

前言

在分布式系统中,要改个配置涉及到很多个系统,一个一个改效率低下,吃力不讨好。用配置中心可以解决这个问题。当然配置中心有不少,以下对比的表格是照搬Apollo Wiki的。

功能点ApolloSpring 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

露水湾 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Apollo阿波罗配置中心docker
喜欢 (4)
[]
分享 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址