一种分布式任务系统及应用该系统的数据处理方法技术方案

技术编号:3540115 阅读:246 留言:0更新日期:2012-04-11 18:40
本申请公开了一种分布式任务系统及应用该系统的数据处理方法,所述系统包括:子任务拆分层,用于采取时间片段锁的方式,将待处理的业务数据对应的查询过滤条件进行拆分,下发所述拆分后的查询过滤条件;数据装载层,用于接收所述查询过滤条件,从数据库中获取与所述查询过滤条件对应的待处理数据,根据数据分配策略下发所述待处理数据;数据处理层,用于对接收到的待处理数据进行业务处理。应用本申请,在保证分布式任务系统不会重复处理相同数据的同时,还能够避免系统瓶颈最大限度的实现多服务器并发处理,达到了业务需求与系统性能的最优设计,可以实现硬件资源水平无限扩展。

【技术实现步骤摘要】

本专利技术涉及分布式任务
,特别涉及一种分布式任务系统及应用 该系统的数据处理方法。
技术介绍
在小型的服务器系统中, 一般抓取数据和数据处理都由一台服务器来实 现,但随着数据量的增大, 一台服务器的效能已经不能满足系统的要求。于 是业界通常将多台服务器布置为分布式任务系统来进行相关数据处理,并且, 为了避免多台服务器处理时会存在重复性的问题,通常采用时间片段锁。务,被多个服务器并发处理的情况;为了避免被多个服务器并发处理,根据 任务的处理间隔时长决定时间片段的长度,从而以时间片段的方式来保证只 有多台服务器中一台执行操作。例如,设定的时间片段范围为l分钟(具体 根据任务的处理间隔时长决定),在这1分钟内,通过数据库锁的方式来保证 只能有1台服务器来执行定时任务;具体处理方式可以为以一张数据库表 控制并发,这个表很小(数据列少、数据量只有一条记录),只需要记录上1 分钟执行的机器名、机器IP或者MAC地址即可;在进入下l分钟后,所有 的服务器都来尝试锁该笔记录,由于数据库锁的排他性,只会有l台服务器 取得对该笔记录的排他锁,之后更新锁时间和机器IP或MAC地址;那么别 的服务器一旦锁不住则自动退出尝试并暂停任务;等待下1分钟再次尝试取 得排他锁,以此类推。基于上述原理,现有的分布式任务系统及数据处理方案如下将服务器群即多台服务器从逻辑上分为两层,第一层为数据抓取层,第 二层为数据处理层;物理结构上所有的服务器都可以作为上述逻辑两层中的口一贝;当定时任务开始时,通过时间片段锁方式,确保一定时间段内如i分钟 内,只能有一台服务器充当数据抓取的角色,由其与数据库联系进行数据抓3取,根据优化的配置将所抓取的数据进行分发,由数据处理层的服务器执行 具体的数据处理。比如某个海量数据处理任务,硬件方面投入了 20台服务器,组成对该任务的执行服务器群;以当前时间10: OO整为例,在10:00-10:01之间,只能 有一台服务器锁住该任务(可通过数据库表加锁的方式实现),由该服务器一 次性读取10000条数据;按照10000/20分成500个批次分发给数据处理层的 多台服务器共同执行,以达到并发处理的目的。现有的分布式任务系统及其数据处理方式至少存在如下的缺点1 、在同 一时间点只能有一台服务器与数据库进行交互进行业务数据抓 取,那么这台服务器就会成为系统的瓶颈所在;即使增加更多的硬件资源如 继续投入服务器,也无法解决在同一时间点的最大并发处理量,不能够实现 水平扩容;2、对于现有的分布式任务系统,在程序编写中势必会根据当前的业务数 据量及所有的硬件资源综合考虑,推导出当前最优的业务数据分配策略;而 一旦增加了一台或多台服务器,程序分配算法势必要从整体业务逻辑上重新 设计,以达到理论上的最优,即在增加服务器时需要修改程序代码。
技术实现思路
本申请实施例在于提供一种分布式任务系统及应用该系统的数据处理方 法,在保证分布式任务系统不会重复处理相同数据的同时,还能够避免系统 瓶颈最大限度的实现多服务器并发处理,实现水平扩容,并且,在增加服务 器后无需修改程序代码。本申请实施例提供的一种分布式任务系统,包括子任务拆分层,用于采取时间片段锁的方式,将待处理的业务数据对应 的查询过滤条件进行拆分,下发所述拆分后的查询过滤条件;数据装载层,用于接收所述查询过滤条件,从数据库中获取与所述查询 过滤条件对应的待处理数据,根据数据分配策略下发所述待处理数据;数据处理层,用于对接收到的待处理数据进行业务处理。其中,所述查询过滤条件根据业务规则确定。其中,所述分布式任务系统中包括若干台服务器;所述若干台服务器中 的一台或多台作为所述子任务拆分层、数据装载层和^t据处理层中的一层或 多层。本申请实施例还提供了一种数据处理方法,包括将分布式任务系统中 的服务器从逻辑上分为子任务拆分层、数据装载层和数据处理层三层;所述 方法还包括所述子任务拆分层采取时间片段锁的方式,将待处理的业务数据对应的 查询过滤条件进行拆分,下发所述拆分后的查询过滤条件;所述数据装载层接收所述查询过滤条件,从数据库中获取与所述查询过 滤条件对应的待处理数据,根据数据分配策略下发所述待处理数据;所述数据处理层对接收到的待处理数据进行业务处理。其中,所述查询过滤条件根据业务规则确定。其中,所述业务规则包括数据创建时间,或者,数据的处理优先级,或 者,数据创建时间和数据的处理优先级。其中,所述若干台服务器中的一台或多台作为所述子任务拆分层、数据 装载层和凄t据处理层中的一层或多层。应用本申请实施例所提供的分布式任务系统及应用该系统的数据处理方法,在保证分布式任务系统不会重复处理相同数据的同时,还能够避免系统 瓶颈最大限度的实现多服务器并发处理,达到了业务需求与系统性能的最优 设计。再有,应用本申请实施例,由于子任务拆分层不与数据库进行交互,避 免了瓶颈问题,可以对服务器硬件资源的无限水平扩容,无需修改代码;适 用各种大、中型分布式系统。再有,本申请实施例提供的三层逻辑结构中,每层的处理方式由具体业 务决定,如不同的任务、不同的数据量级,其查询过滤条件拆分方式、数据 装载方式以及处理方式都会有不同,开发人员只需针对特定任务,编写每层 的具体业务处理逻辑,经过筒单的配置即可将该任务无缝集成至本申请的分 布式任务处理体系中;同时由于本申请不侵入每个任务的具体业务逻辑,具 有很好的可扩展性。再有,本申请实施例不仅提高了处理数据的效能,而且具有;f艮强的通用 性,所有的分布式任务系统都可以使用此方案进行处理。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地,下面 描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以才艮据这些附图获得其他的附图。图1是根据本申请实施例的一种分布式任务系统结构示意图; 图2是根据本申请实施例的数据处理方法流程图。具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而 不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参见图l,其是^f艮据本申请实施例的一种分布式任务系统结构示意图。本 例中,假设分布式任务系统包括10台服务器,以下为描述方便对其进行编号, 分别为SERVER-1 -1 、 SERVER-1隱2 、 SERVER-1 -3 、 SERVER-1陽4 、 SERVER-1匿5 、 SERVER-2-1、 SERVER-2-2、 SERVER-2-3、 SERVER画2-4、 SERVER-2-5。首先,将分布式任务系统中的若干台服务器从逻辑上分为三层子任务 拆分层、数据装载层和数据处理层,以上编号后的服务器任何一台都可以为 其中一层或多层,也即所述若干台服务器中的一台或多台可以作为所述子任 务拆分层、数据装载层和数据处理层中的一层或多层。这样,本申请实施例 所提供的分布式任务系统包括子任务拆分层101、数据装载层102和数据处 本文档来自技高网
...

【技术保护点】
一种分布式任务系统,其特征在于,包括: 子任务拆分层,用于采取时间片段锁的方式,将待处理的业务数据对应的查询过滤条件进行拆分,下发所述拆分后的查询过滤条件; 数据装载层,用于接收所述查询过滤条件,从数据库中获取与所述查询过滤条件 对应的待处理数据,根据数据分配策略下发所述待处理数据; 数据处理层,用于对接收到的待处理数据进行业务处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:许寄
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:VG[英属维尔京群岛]

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

1