背景介绍
最近新入职了一家公司做数据开发,发现之前公司所用的定时任务调度还是Crontab的方式。比较原始,对定时任务的状态、日志等都难以管理和监控。同时项目多了之后也没有一个统一的平台对这些任务进行管理。因为之前本人就有对xxl-job二次开发并使用xxl-job负责整个公司数据任务脚本调度的经验,所以就分配给我来做这个事情。由于之前的项目中都必须使用docker来隔离各个环境,所以此次采用的方案也是给予docker部署。
方案介绍
xxl-job调度平台分为调度器和执行器,因为线上环境由两台服务器,所以我就想着都利用起来,综合各种因素考虑,就选用了docker swarm方案各个节点形成热备。
具体部署:
1、创建了docker swarm的overlay网络xxl-job-network
2、使用dcoker service 创建了xxl-job-admin集群,启动了两个副本容器,将8080端口映射到了宿主机的8080端口上,如调度器地址成了:http://192.168.0.1:8080/xxl-job-admin
3、使用docker run的方式启动了执行器的容器,因为每个执行器只允许有一个容器运行,所以综合小组成员docker熟练情况和历史原因,就采用原始docker run的方式运行执行器容器,然后执行器配置中指定的调度器的地址采用的是:http://192.168.0.1:8080/xxl-job-admin方式。
事故发生
这种方案在测试环境中运行的好好的,执行器也能够正常的注册到调度器,调度器也可以正常的访问执行器。因为在测试环境验证过无数遍了,按照测试环境的操作,