struts框架的原理和应用_分布式开源调度框架TBSchedule原理与应用

主要内容:

第一部分 TBSchedule基本概念及原理

1. 概念介绍

2. 工作原理

3. 源码分析

4. 与其他开源调度框架对比

第二部分 TBSchedule分布式调度示例

1. TBSchedule源码下载

2. 引入源码Demo开发示例

3. 控制台配置任务调度

4. selectTasks方法参数说明

5. 创建调度策略参数说明

6. 创建任务参数说明

第一部分 TBSchedule基本概念及原理

1. 概念介绍

TBSchedule是一个支持分布式的调度框架,能让一种批量任务或者不断变化的任务,被动态的分配到多个主机的JVM中,不同的线程组中并行执行。基于ZooKeeper的纯Java实现,由Alibaba开源。

2. 工作原理

TBSchesule对分布式的支持包括调度机的分布式和执行机的分布式,其网络部署架构图如下:

a70b69487e4fd7dd8008a1cba2ee9fa5.png

2.1 数据存储

执行机和调度机均以ZooKeeper为注册中心,所有数据以节点及节点内容的形式注册,通过定时汇报主机状态保持存活在ZooKeeper上。

首先看下执行机对ZooKeeper的使用配置文件:

<?xml version="1.0" encoding="utf-8"?>

1)执行机部署启动,会在ZooKeeper上创建永久根节点schedule.zookeeper.address,其后所有的操作均在该根节点下进行。

这里以/ttest/creditjob为根节点,查看执行机注册后情况:

[zk: 172.26.50.86:2181(CONNECTED) 28] ls /ttest/creditjob[strategy, baseTaskType, factory][zk: 172.26.50.86:2181(CONNECTED) 29] ls /ttest/creditjob/factory[127.0.0.1$MIE-ZHANGTAO-D1$9D3029EC0C574403B6CFD0C146644A77$0000000000, 127.0.0.1$MIE-ZHANGTAO-D1$D826BC6565DC4D6CB85F7AE321EE51AE$0000000001]

可以看到根节点下面有3个永久子节点,strategy存储调度机创建的策略信息,baseTaskType存储调度机创建的任务信息,factory存储执行机注册的主机信息。每台执行机启动后,都会在factory下创建一个临时顺序子节点,该节点名是由TBSchedule源码生成的主机唯一表示。

根节点内容为当前TBSchedule内置版本号,可在程序修改,实际没什么意义。

[zk: 172.26.50.86:2181(CONNECTED) 17] get /ttest/creditjobtbschedule-3.2.12

2)调度机部署启动,这时不会对ZooKeeper节点做任何操作。打开调度机配置面板:

4ac13ec657a3f854b6d1b377b00d3326.png

配置好ZooKeeper接入点,点击管理主页,进入调度任务管理面板:

4634fd117964f4f4e241627c2016d6a6.png

输入各项参数创建新任务后,此时会在baseTaskType下面创建任务名称永久子节点(调度机所有都宕机重启后,仍能保持数据的完整性),而当前节点的内容就是配置的各项参数。

[zk: 172.26.50.86:2181(CONNECTED) 37] ls /ttest/creditjob/baseTaskType[IScheduleTaskDealSingleTest][zk: 172.26.50.86:2181(CONNECTED) 39] get /ttest/creditjob/baseTaskType/IScheduleTaskDealSingleTest{"baseTaskType":"IScheduleTaskDealSingleTest
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值