分布式任务框架选型

任务框架需求:

  1. 分布式任务框架,需要一个分布式锁,只有获得锁的才能执行任务。
         解决方案:redis,zookeeper,DB
  2. 运维工具。日志、监控、任务配置等
  3. 高可用性。保证任务能够执行,且不重复跑。用途就是在分布式环境使用,可以轻松实现。

第1、3点不复杂代码量也不多,可以自己实现,但第2点需要大量的code,需要从网上找现成的框架。

下面调研了4种分布式任务调度框架,整理如下:

  可用性 运维工具 复杂度 任务分片 并行调度 文档 部署方式
tbschedule 丰富 支持 支持 一般 独立
clover 丰富 支持 支持 一般 独立
quartz 不支持 支持 丰富 集成
elastic-job 丰富 支持 支持 丰富 独立

tbschedule:淘宝开源的产品,除官方资料外其他资料较少

clover:系统较复杂(mongo存储数据,redis缓存,zk调度,ZeroMQ做server和client通信)

quartz:以DB来作为分布式锁,与主体项目一起部署,团队学习成本低,但是缺少运维工具(日志、监控、任务配置等)。任务按时间触发,获取DB中行级锁,执行任务。

elastic-job:当当网开源产品,资料比tbschedule丰富。作业服务器启动后向zk注册,选举主服务器。任务触发时,由主服务器分片,然后按IP获取分片并执行。

结论:elastic-job胜出。

时间: 2024-08-07 14:36:43

分布式任务框架选型的相关文章

分布式服务框架选型:面对Dubbo,阿里巴巴为什么选择了HSF?

转载:http://www.sohu.com/a/141490021_268033 阿里巴巴集团内部使用的分布式服务框架 HSF(High Speed Framework,也有人戏称"好舒服")已经被很多技术爱好者所熟知,目前已经支撑着近 2000 多个应用的运行. 其对应早期的开源项目 Dubbo(因为某些原因,Dubbo 项目在 2012 年年底,阿里巴巴就停止了对此开源项目的更新),则更是在互联网领域有着非常高的知名度和广泛的使用. 本文通过对阿里巴巴 HSF 服务框架的介绍,让

分布式事务框架选型

个人发展建议:研究源码,知核心,知原理,清楚了解细节,甚至改造,自己写!! 阿里Fescar(GTS开源版本,GTS有阿里云服务)官方中文:https://github.com/alibaba/fescar/wiki/Home_Chinese 开源消息和与其他分布式框架(ByteTCC.LCN)对比:https://blog.csdn.net/xlgen157387/article/details/86289066 介绍和对比:https://blog.csdn.net/weixin_39800

jeesz分布式企业框架 javaWeb分布式架构 springmvc+mybatis+shiro dubbo zookeeper redis kafka app服务

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach

分布式服务框架下,如何做到服务化最佳实践?

“升级服务框架后,性能.可靠性等问题日益明显.服务化之后面临的诸多挑战,怎样分析才能给出实践最优解? 在服务化之前,业务通常都是本地API调用,本地方法调用性能损耗较小.服务化之后,服务提供者和消费者之间采用远程网络通信,增加了额外的性能损耗,业务调用的时延将增大,同时由于网络闪断等原因,分布式调用失败的风险也增大.如果服务框架没有足够的容错能力,业务失败率将会大幅提升. 除了性能.可靠性等问题,跨节点的事务一致性问题.分布式调用带来的故障定界困难.海量微服务运维成本增加等也是分布式服务框架必须

【转】轻量级分布式 RPC 框架

第一步:编写服务接口 第二步:编写服务接口的实现类 第三步:配置服务端 第四步:启动服务器并发布服务 第五步:实现服务注册 第六步:实现 RPC 服务器 第七步:配置客户端 第八步:实现服务发现 第九步:实现 RPC 代理 第十步:发送 RPC 请求 总结 附录:Maven 依赖 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 H

【推荐】微服务大型分布式企业框架 dubbo + springmvc + mybatis + ehcache + redis Jeesz分布式架构

框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数据字典组件.核心工具 组件.视图操作组件.工作流组件组件.代码生成等.采用分层设计.双重验证.提交数据安全编码.密码加密.访问验证.数据权限验证.平台简介 是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. 本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.A

轻量级分布式 RPC 框架

原文出处: 黄勇 RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样. RPC 可基于 HTTP 或 TCP 协议,Web Service 就是基于 HTTP 协议的 RPC,它具有良好的跨平台性,但其性能却不如基于 TCP 协议的 RPC.会两方面会直接影响 RPC 的性能,一是传输方式,二是序列化. 众所周知,TCP 是传输层协议,HTTP 是应用层协议,而传输层较应用层更加底层,在数据传输方面,越底层越快,

【推荐】微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach

推荐】微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach