您的位置 首页 java

分布式调度框架比较

前言

现实世界中,我们经常会面对这样的情况,比如:我们定了早晨7:00的闹铃,到了7:00闹铃会把我们叫醒。我们醒了之后,把闹铃关掉。

大家有没有发现,我们做了两件事,第一、我们醒了;第二、我们关了闹铃。

这事情是怎么发生的?

其一、7:00到了,闹钟把我们叫醒了。 抽象:时间触发事件。

其二、我们醒了,关掉闹铃。 抽象:事件触发事件。

总的来说就是,时间驱动和事件驱动。

现在软件定义世界,日常工作和学习通过软件定义之后,我们可以把刚才的“我们醒了”和“我们关掉闹钟” 抽象成任务,即要的事。

那“闹铃响了”和“我们醒了” 抽象成触发条件。

有哪些定时任务框架呢?

单机

  • Linux 服务器 :Linux Crontab 定时任务【cron搭配shell脚本】
  • Window服务器: 控制面板—>管理工具—>任务计划程序【未实践,可自行测试】
  • 软件进程: 【以 java 为例】
  • 工具类:Timer类、注解(@Scheduled)
  • 框架: Quartz

分布式调度框架【各家公司的产品】

  • 阿里 :Schedulerx2.0【非常不错,】
  • Linkedin :【Azkaban开源的工作流管理器,轻量级调度框架】
  • 大众点评:xxl-job【 www.xuxueli.com/xxl-job/#/
  • 当当网 :Elastic-job【】
  • 唯品会 :Saturn【#/】
  • Apache Oozie:功能强大,配置复杂的 Hadoop 任务调度框架
  • AirFlow:基于 Python 开发的通用批处理调度框架
  • EasyScheduler:国内开源的分布式工作流任务调度系统

思辨

  • 单机 VS 分布式?

毫无疑问,生产环境肯定要分布式,无需辩驳。单机的话,越简单的方式越好。

  • 分布式之开源框架 VS 云产品

如自己维护服务器,则选择开源的,有大公司背书的和有不错文档的, Azkaban还不错。

云原生时代,鉴于你使用的云是哪家的?则选择云上的分布式调度框架即可。

阿里云 的话,SchedulerX不用考虑了,直接用之。

那如果是AWS呢?容我研究一下。

文章来源:智云一二三科技

文章标题:分布式调度框架比较

文章地址:https://www.zhihuclub.com/191244.shtml

关于作者: 智云科技

热门文章

网站地图