python自动化部署docker容器消费kafka
一. 使用场景
1.上一篇我们实现了在开发环境下通过指定id来进行消费和生产,这一节我们将项目打包为docker镜像,来实现不同机器的部署,这样当有新的消费需求的时候我们可以通过配置规则到数据库中快速启动
2.目前很实用的就是通过maxwell监听各业务方的mysql数据库的binlog写入kafka,然后消费kafka写入到集群
二.我们复制一个新任务将kafka的配置改写为测试环境kafka集群
插入一条数据
三.新增一个几个目录和文件 目录与mock平级
四.mock.py修改
上一篇我们是使用mock函数里的consumer函数 通过传id将config配置动态获取 返回Scheduler的实例起动消费的worker进程,如果用docker部署的话 我们上一节提到将数据库的数据dumps为配置文件最佳,所以我们将consumer函数修改为dumpsconfig函数,然后gendocker_container脚本里引用这个函数
mock.py
五.下面是实现docker容器自动化的关键一步,首先梳理run一个容器的部署
1.打包为一个镜像 docker build ----参数 命名镜像名:版本号
2.ru容器:docker run -d 参数(-v/日志目录/启动脚本等) --name 容器名 镜像名称:版本号
3.第一步我们可以先不考虑,第二步的命令行参数除了(命名镜像名:版本号)依赖第一步,其他都可以从数据库的信息里去得到,因此我们gendockercontainer.py脚本考虑的流程就是将获取到config,首先生成配置文件然后再生成shell脚本即可
gen_docker_container.py 脚本命令行
六.效果如下:
run-docker
启动消费进程 挂载到宿主机log目录
学习付费-拓展开发思维,提高效率和工作绩效,争取每天0点28分都发点东西,记录学习一些东西
领取专属 10元无门槛券
私享最新 技术干货