分布式调度框架Elastic-Job和xxl-job区别

分布式调度框架Elastic-Job和xxl-job区别还是比较明显的,首先明确一下共同点,即它们俩共同解决的问题是什么?

一、解决传统定时任务存在的问题:

1、业务耦合 : 如果需要修改定时任务时间,就需要重新部署整个应用,将会导致整个应用停滞一段时间。

2、单点风险  : 所有调度任务都在单台服务器上执行,当任务执行节点出现问题时,整个定时任务全部终止。

3、资源分配不均衡 : 随着业务越来越多,相应的定时任务也会增多,单台服务器执行任务的压力会越来越大。

二、分布式调度解决的问题

1、分布式调度协调

2、弹性扩容缩容

3、失效转移

4、错过执行作业重触发

5、作业分片一致性,保证同一分片在分布式环境中仅一个执行实例

6、自诊断并修复分布式不稳定造成的问题

7、支持并行调度 支持作业生命周期操作

三、两种方案优缺点对比

1、Elastic-Job 的伸缩性强

       Elastic-Job 是一个分布式调度解决方案,由两个相互独立的子项目 Elastic-Job-Lite 和 Elastic-Job-Cloud 组成。

        Elastic-Job-Lite 定位为轻量级无中心化解决方案,使用 jar 包的形式提供分布式 任务的协调服务。

         基于 quartz 定时任务框架为基础的,因此具备 quartz 的大部分功能 使用 zookeeper 做协调,调度中心,更加轻量级 支持任务的分片 支持弹性扩容,可以水平扩展, 当任务再次运行时,会检查当前的服务器数量,重新分片,分片结束之后才会继续执行任务 失效转移,容错处理,当一台调度服务器宕机或者跟 zookeeper 断开连接之后,会立即停止作业,然后再去寻找其他空闲的调度 服务器,来运行剩余的任务 提供运维界面,可以管理作业和注册中心。

           Elastic-Job-Lite 是去中心化解决方案。

2、xxl-job的灵活性好:

xxl-job 是一款基于 spring, quartz,netty 开源定时任务框架,解决的问题是不用每一个 job-client 都需要集成 quartz,管 理 cron 配置,尤其 job 很多的时候当容器启动会执行一堆 job,影响启动速度。 原理简单而言就是由 job 配置中心管理通过 quartz 控制客户端 job 触发时机,然后通过 netty rpc 调用执行客户端的具体 实现。 这样中心化的方式可以极大改善 job 的管理成本,还可以配置集群。下面是其全景图:

 

XXL-JOB 是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 现已开放源代码 并接入多家公司线上产品线,开箱即用。与 E-Job 走无中心化方式不同,XXL-JOB 是中心集权方式。

 

xxl-job可以部署集群,但是集群之间的节点之间没有关系。

四、xxl-job 使用时经常遇到的问题 

1、XXL-JOB的服务器端和用户端版本必须保持一致,不然会报错

2、由于xxl-job使用的一些依赖包与原有项目中的依赖包存在版本冲突,造成java.lang.NoClassDefFoundError错误

参考2

3、 netty版本与项目中包冲突,解决方案引入新的包

参考1

还有一篇介绍两者区别的问题,可以参考。

参考区别

到此,两者区别分析完毕,下一篇我们分析 spring task调度器用法,敬请期待!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值