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
相关文章
相关标签/搜索