Apollo阿波罗配置中心docker

田德馨
2023-12-01

前言

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

转载于:https://www.cnblogs.com/chenchuxin/p/8475985.html

 类似资料: