分布式任务调度方法和系统技术方案

技术编号:15899061 阅读:32 留言:0更新日期:2017-07-28 21:42
本发明专利技术提出了一种分布式任务调度系统,所述系统包括:应用服务器,所述应用服务器有多个,用于与中间服务器建立TCP连接,将IP地址和Job信息注册到所述中间服务器,执行被分配的子任务;中间服务器,所述中间服务器有多个,用于管理应用服务器;分布式协调服务器,用于部署Zookeeper,与所述中间服务器建立连接,由所述Zookeeper统一对所述中间服务器进行协调。通过引入多个中间服务器来管理应用服务器,分布式协调服务器中部署的Zookeeper只需要对中间服务器进行协调,大大减少了Zookeeper的负担,且可以实现了动态扩充应用服务器。

【技术实现步骤摘要】
分布式任务调度方法和系统
本专利技术涉及计算机处理领域,特别是涉及一种分布式任务调度方法和系统。
技术介绍
分布式任务调度,是指将一个应用或者业务划分出的多个任务交由多个服务器进行处理。分布式任务调度可解决单个服务器资源不足等问题,达到大规模数据计算的目的。传统的分布式框架有很多,例如,Quartz、Zookeeper等技术都可以实现分布式任务调度。其中,Quartz的集群方式是利用数据库的锁,同一时间只允许有一台服务器能拿到锁执行任务,没有利用集群的优势并行执行,处理的速度比较慢。Zookeeper是分布式应用程序协调服务,其对数据进行分片,分配给多个应用服务器去执行处理,实现了并行执行,从而提升了处理速度。但是由于Zookeeper往往需要管理很多应用服务器,每个任务开始及结束的记录也都需要写入Zookeeper,造成Zookeeper的负担比较重,而且如果要加入新的应用服务器,也需要在Zookeeper上进行操作,进一步加大了其负担,且不能实现应用服务器的动态扩充。
技术实现思路
基于此,有必要针对上述问题,提出一种能够减少Zookeeper的负担且可以动态进行应用服务器扩充的分布式任务调度的方法和系统。一种分布式任务调度系统,所述系统包括:应用服务器,所述应用服务器有多个,用于与中间服务器建立TCP连接,将IP地址和Job信息注册到所述中间服务器;中间服务器,所述中间服务器有多个,用于管理应用服务器,获取所述应用服务器注册的IP地址和Job信息,将具有相同Job信息的应用服务器划分为一个Job群组,在该Job群组中的多个应用服务器中选举出一个leader应用服务器,并将对应的任务配置信息和Job群组内的各个应用服务器的IP地址下发到该leader应用服务器;所述leader应用服务器用于根据所述任务配置信息中的分片数将任务进行拆分,并根据Job群组内的各个应用服务器的IP地址将拆分后的子任务进行分配;所述应用服务器还用于执行被分配的子任务;分布式协调服务器,用于部署Zookeeper,与所述中间服务器建立连接,由所述Zookeeper统一对所述中间服务器进行协调。在其中一个实施例中,所述中间服务器还用于根据所述Job信息查找实际管理该Job的目标中间服务器,将所述目标中间服务器的地址返回给所述应用服务器;所述应用服务器还用于根据所述目标中间服务器的地址与所述目标中间服务器建立TCP连接。在其中一个实施例中,所述中间服务器还用于监控Job群组中的应用服务器的上线或下线,当Job群组中有应用服务器上线或下线时,指示Job群组中的leader应用服务器将对应的任务进行重新分配,并接收所述leader应用服务器返回的新的分配结果。在其中一个实施例中,所述分布式协调服务器还用于通过Zookeeper在多个中间服务器中选举出一个leader中间服务器;所述leader中间服务器还用于实时监控集群中其他中间服务器节点,若发现有中间服务器掉线,则为所述掉线的中间服务器管理的Job群组分配给一个在线的中间服务器来接管,并在所述Job群组中设置migrate节点,所述migrate节点用于标注Job群组的迁移状态,当迁移完成后,删除该migrate节点;所述中间服务器还用于实时监控Job群组下的migrate节点,若发现所述migrate节点的IP地址和自身的相同,则接管所述migrate节点所在的Job群组。在其中一个实施例中,所述leader中间服务器还用于若监控到有中间服务器掉线,则判断所述掉线的中间服务器是否正在接管Job群组,若是,则为该Job群组重新分配接管的中间服务器。在其中一个实施例中,所述应用服务器还用于根据所述Job信息判断是否到达任务的执行时间,若是,则从管理该应用服务器的中间服务器中获取对应的分片信息,根据所述分片信息开始执行对应的子任务,并将任务开始执行的信息记录到中间服务器。在其中一个实施例中,所述系统还包括:数据库,用于存储Job信息,接收中间服务器发送的任务开始及结束的记录并进行存储。一种分布式任务调度方法,所述方法包括:应用服务器向中间服务器发起TCP连接请求,所述中间服务器根据所述TCP连接请求与所述应用服务器建立TCP连接;所述应用服务器向所述中间服务器注册该应用服务器的IP地址和Job信息;所述中间服务器获取所述应用服务器注册的IP地址和Job信息,将具有相同Job信息的应用服务器划分为同一个Job群组,在该Job群组中的多个应用服务器中选举出一个leader应用服务器,将所述Job信息对应的任务配置信息和Job群组内的各个应用服务器的IP地址下发到所述leader应用服务器;所述leader应用服务器根据所述任务配置信息中的分片数将任务进行拆分,并根据Job群组内的各个应用服务器的IP地址将拆分后的子任务进行分配。在其中一个实施例中,在所述中间服务器获取所述应用服务器注册的IP地址和Job信息的步骤之后还包括:所述中间服务器根据所述Job信息查找实际管理该Job的目标中间服务器,将所述目标中间服务器的地址返回给应用服务器;所述应用服务器根据所述目标中间服务器的地址和所述目标中间服务器建立TCP连接。在其中一个实施例中,所述方法还包括:所述中间服务器监控Job群组中的应用服务器的上线或下线,当Job群组中有应用服务器上线或下线时,指示Job群组中的leader应用服务器将对应的任务进行重新分配;所述leader应用服务器按照所述指示根据Job群组中当前在线的应用服务器数量将所述任务进行重新分配,并将分配结果返回给所述中间服务器。上述分布式任务调度方法和系统,通过引入多个中间服务器来管理应用服务器,分布式协调服务器中部署的Zookeeper只需要对中间服务器进行协调,由于应用服务器由中间服务器来管理,任务的开始以及结束的记录都只需要写入中间服务器,而不需要写入Zookeeper,减少了Zookeeper的负担,且一个中间服务器可以管理多个应用服务器,Zookeeper只需要对少量的中间服务器进行协调管理即可,大大减少了Zookeeper的负担,进一度的,由于由中间服务器来管理应用服务器,如果需要扩充应用服务器,只需要在中间服务器中进行注册即可,不需要在Zookeeper进行操作,从而实现了能够动态扩充应用服务器的目的。附图说明图1为一个实施例中分布式任务调度系统的架构图;图2为一个实施例中Zookeeper的目录结构图;图3为另一个实施例中分布式任务调度系统的架构图;图4为一个实施例中分布式任务调度方法流程图;图5为另一个实施例中分布式任务调度方法流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,在一个实施例中,提出了一种分布式任务调度系统,该系统包括:应用服务器102,中间服务器104和分布式协调服务器106;其中,应用服务器102,应用服务器有多个,用于与中间服务器建立TCP连接,将IP地址和Job信息注册到中间服务器。在本实施例中,应用服务器102有多个,应用服务器是具体执行任务的服务器,由于是和客户端直接交互的,本文档来自技高网...
分布式任务调度方法和系统

【技术保护点】
一种分布式任务调度系统,所述系统包括:应用服务器,所述应用服务器有多个,用于与中间服务器建立TCP连接,将IP地址和Job信息注册到所述中间服务器;中间服务器,所述中间服务器有多个,用于管理应用服务器,获取所述应用服务器注册的IP地址和Job信息,将具有相同Job信息的应用服务器划分为一个Job群组,在该Job群组中的多个应用服务器中选举出一个leader应用服务器,并将对应的任务配置信息和Job群组内的各个应用服务器的IP地址下发到该leader应用服务器;所述leader应用服务器用于根据所述任务配置信息中的分片数将任务进行拆分,并根据Job群组内的各个应用服务器的IP地址将拆分后的子任务进行分配;所述应用服务器还用于执行被分配的子任务;分布式协调服务器,用于部署Zookeeper,与所述中间服务器建立连接,由所述Zookeeper统一对所述中间服务器进行协调。

【技术特征摘要】
1.一种分布式任务调度系统,所述系统包括:应用服务器,所述应用服务器有多个,用于与中间服务器建立TCP连接,将IP地址和Job信息注册到所述中间服务器;中间服务器,所述中间服务器有多个,用于管理应用服务器,获取所述应用服务器注册的IP地址和Job信息,将具有相同Job信息的应用服务器划分为一个Job群组,在该Job群组中的多个应用服务器中选举出一个leader应用服务器,并将对应的任务配置信息和Job群组内的各个应用服务器的IP地址下发到该leader应用服务器;所述leader应用服务器用于根据所述任务配置信息中的分片数将任务进行拆分,并根据Job群组内的各个应用服务器的IP地址将拆分后的子任务进行分配;所述应用服务器还用于执行被分配的子任务;分布式协调服务器,用于部署Zookeeper,与所述中间服务器建立连接,由所述Zookeeper统一对所述中间服务器进行协调。2.根据权利要求1所述的系统,其特征在于,所述中间服务器还用于根据所述Job信息查找实际管理该Job的目标中间服务器,将所述目标中间服务器的地址返回给所述应用服务器;所述应用服务器还用于根据所述目标中间服务器的地址与所述目标中间服务器建立TCP连接。3.根据权利要求1所述的系统,其特征在于,所述中间服务器还用于监控Job群组中的应用服务器的上线或下线,当Job群组中有应用服务器上线或下线时,指示Job群组中的leader应用服务器将对应的任务进行重新分配,并接收所述leader应用服务器返回的新的分配结果。4.根据权利要求1所述的系统,其特征在于,所述分布式协调服务器还用于通过Zookeeper在多个中间服务器中选举出一个leader中间服务器;所述leader中间服务器还用于实时监控集群中其他中间服务器节点,若发现有中间服务器掉线,则为所述掉线的中间服务器管理的Job群组分配给一个在线的中间服务器来接管,并在所述Job群组中设置migrate节点,所述migrate节点用于标注Job群组的迁移状态,当迁移完成后,删除该migrate节点;所述中间服务器还用于实时监控Job群组下的migrate节点,若发现所述migrate节点的IP地址和自身的相同,则接管所述migrate节点所在的Job群组。5.根据权...

【专利技术属性】
技术研发人员:熊杰
申请(专利权)人:上海壹账通金融科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1