tbschedule介绍

       如果一台服务器不能满足大批量的任务;如果不想一台服务器挂掉造成整个任务执行瘫痪;或者只是想体验一下分布式任务调度。tbschedule来了。
一、tbschedule是什么?
        tbschedule是一种能够让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中,不同的线程组中并行执行,所有的任务能够被不重复,不遗漏的快速处理的框架。
二、tbschedule用了什么技术?
       使用zookeeper进行任务分配和同步。也就是说,基本的任务信息和调度信息都在zookeeper中存着。(下面有图解)
三、tbschedule两个核心bean类
        1、ScheduleStrategy调度策略类
    
column type comment
strategyName String 调度策略的名
IPList String[] 能够分配这个调度策略的服务器ip。127.0.0.1表示所有服务都可参与调度策略的分配。
numOfSingleServer int 一个服务器分配ScheduleServer的个数。
(别急,下面会介绍ScheduleServer)
taskName String 任务名称。和ScheduleTaskType对应。
        2、ScheduleTaskType基本任务类
column type comment
baseTaskType String 任务名
sleepTimeNoData long 取不到任务时,休眠时间
sleepTimeInterval long 每次去任务的间隔时间
fetchDataNumber int 每次获取数据的数量
executeNumber int 在批处理的时候,每次处理的数据量
threadNumber int 开启处理任务的线程数量
processorType String 调度器类型。有"sleep"和"noSleep"
dealBeanName String 处理任务的BeanName
permitRunStartTime String 允许执行的开始时间
permitRunEndTime String 允许执行的结束时间
taskItems String[]  任务项数组
     
四、主要工作流程
        1.定时更新调度策略在多台服务器的分配
         启动定时器,定时更新调度策略在多台服务器的分配。下面给一个实例帮助大家理解。
         图1是一个项目检测列调度策略类在的信息。如图显示可以看出这个项目有两台服务器104.122和106.111;调度策略的strategyName是EAGEYE-EVENT-MONITOR-Strategy,能够分配这个调度策略的服务器ip设置成了["127.0.0.1"],表示所有连上来的服务器都可以分配这个调度策略,就像红色框中看到的。如果某个时刻又连上来一台服务器106.112,定时更新调度策略的线程会将这台服务器信息添加到这个调度策略下面。
    
                                                                                                              图1        
      2.定时更新基本任务的任务项在多个ScheduleServer中的分配
      启动定时器,定时更新基本任务的任务项在多个ScheduleServer中的分配。
      首先明确一个概念:ScheduleServer是分配任务项的基本单位。一台服务器可以启动多个SchedulerServer,但是一般情况一台服务器启动一个ScheduleServer,具体由调度策略类的numOfSingleServer参数控制。下面接着看图2,注释都写图上了,就不再啰嗦了。
       
                                                                                                                图2
       3.每台服务器任务线程组按着基本任务类中的设置,循环从zookeeper中得到属于自己的任务项,然后根据任务项从数据库或者缓存(就是从任务存储的地方)取任务,并执行。
        至此整个分配任务和执行任务的流程都讲完了。
五、官方文档和demo
        大家可以从官方文档了解更细节的东西,可以下源码项目下下来,里面有入门demo。http://code.taobao.org/p/tbschedule/wiki/index/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值