调度模块(调度中心): 负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块; 支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志。
执行模块(执行器): 负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效; 接收“调度中心”的执行请求、终止请求和日志请求等。
忙碌转移(故障转移):首先会对机器列表进行自然排序,然后从第 1 台开始,第2 台,直到一次触发成功的时候,会进行触发,之前的会标记失败。在调度轨迹可以看到,第 1 台触发失败,第 2 台触发失败,第 3 台触发成功,最终实现任务触发的成功。
分片任务 & 动态分片:假如我们现在总数据量有 3 万条数据,任务进行触发了,但是在线的执行器可能是 3 台。当触发的时候会分别向 0、1、2 进行发送请求。这时候 0 接受到的参数就是03,2 就是 13,最后一个是 23。这样根据参数对总数据进行分片,把最大数据拿到,进行处理。这样假如当前有一台新机器上线了,或者机器 4 上线了,在下一次触发的时候,会以新的分片参数作为请求参数进行触发。
调度中心集群:DB配置保持一致; 登陆账号配置保持一致; 集群机器时钟保持一致;