分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn) (2)

xxl-job: 是大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,最新发布版本V2.0.2(2019.4.20日),其在唯品会内部已经发部署350+个节点,每天任务调度4000多万次。同时,管理和统计也是它的亮点。使用案例 大众点评、易信(IM)、京东(电商系统)、360金融(金融系统)、易企秀、随行付(支付系统)、优信二手车

4.分布式定时任务调度系统对比

参与对比的可选系统方案: xxl-job(大众点评开源)、Elastic-job(当当网开源)、Saturn(唯品会开源)

4.1 项目背景以及社区力量

分布式定时任务调度系统技术解决方案(xxl-job、Elastic-job、Saturn)

4.2 集群部署

xxl-job: 

基于Quartz的集群方案,数据库选用Mysql;集群分布式并发环境中使用QUARTZ定时任务调度,会在各个节点会上报任务,存到数据库中,执行时会从数据库中取出触发器来执行,如果触发器的名称和执行时间相同,则只有一个节点去执行此任务。调度中心通过db配置区分不同集群。

调度中心集群部署时,几点要求和建议:

DB配置保持一致;

登陆账号配置保持一致;

集群机器时钟保持一致(单机集群忽视);

建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行

Elastic-job: 

重写Quartz基于数据库的分布式功能,改用Zookeeper实现注册中心

基于Zookeeper和其客户端Curator实现的全局作业注册控制中心。用于注册,控制和协调分布式作业执行。

Saturn: 

Saturn是Elastic-job的fork版本,所以saturn 也是用Zookeeper实现集群的调度。

Saturn包括两大部分,Saturn ConsoleSaturn Executor

Saturn Console是一个GUI,用于作业/Executor管理,统计报表展现,系统配置等功能。它同时也是整个调度系统的大脑:将作业任务分配到各Executor。

为了实现Console的高可用性,我们都希望Console有多台服务器所组成。我们只需要在多台不同的服务器的环境变量中指定相同的VIP_SATURN_CONSOLE_CLUSTER即可,至于VIP_SATURN_CONSOLE_CLUSTER的值,由你自行指定,只是一个集群标识而已。

Saturn Executor是执行任务的Worker:按照作业配置的要求去执行部署于Executor所在容器或物理机当中的作业脚本和代码。

4.3 多节点部署时任务不能重复执行

xxl-job

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgsjz.html