LTS分布式定时调度框架原理

本文介绍了Light Task Scheduler (LTS) 的功能,包括实时任务和定时任务管理、动态任务调整、节点管理及故障容错机制。LTS由JobClient、TaskTracker、JobTracker和admin组件构成,通过Zookeeper或Redis实现注册中心,支持多种组件选择。使用建议强调了单个JobClient和TaskTracker的部署,并提供了组件间的协作流程图和推荐的部署策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.LTS功能:

1.可以定义实时任务和Cron定时任务

2.可以暂停,删除任务,并且可以动态的修改任务执行时间

3.可以查看正在执行的任务和等待执行的任务

4.可以通过节点组进行应用服务隔离管理.

二.LTS主要由以下四个组件节点组成

1.JobClient: 主要负责提交任务,和接收任务执行的结果

2.TaskTracker: 负责执行任务,执行完任务反馈给JobTracker

3.JobTracker: 负责接收和分配任务,调度任务

4.admin: 节点管理和任务队列管理,查看日志,监控报警等

三.组件介绍

其中JobClient和TaskTracker是在jvm里面的线程,JobTracker是部署的LTS服务端组件,以上三个组件节点都是无状态的,可以动态的随着应用服务部署节点增加或者减少,来实现负载均衡,并且框架采用failStore容错策略.

LTS注册中心可以由zookeeper或者Redis实现,注册中心的作用进行节点暴露,master节点选举,主要针对JobTracker进行管理.

任务队列和执行日志存储可以选择mysql或者mongodb

底层通信可以用netty或者mina

FailStore
顾名思义,这个主要是用于失败了存储的,主要用于节点容错,当远程数据交互失败之后,存储在本地,等待远程通信恢复的时候,再将数据提交。
FailStore主要用户JobClient的任务提交,TaskTracker的任务反馈,TaskTracker的业务日志传输的场景下。
FailStore目前提供几种实现:leveldb,rocksdb,berkeleydb,mapdb,ltsdb,用于可以自由选择使用哪种,用户也可以采用SPI扩展使用自己的实现

四:LTS执行流程图

 五.使用建议

一个jvm里面只需要一个JobClient就可以,TaskTracker也尽量保持一个,如果需要执行多种任务,可以将多个JobRunner线程提交到统一的taskTracker里面去执行.

详情请看官方Git地址介绍: GitHub - ltsopensource/light-task-scheduler: Distributed Scheduled Job Framework

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值