用于在分布式环境中执行任务的方法、装置及系统的制作方法

文档序号:9922014阅读:330来源:国知局
用于在分布式环境中执行任务的方法、装置及系统的制作方法
【技术领域】
[0001] 本申请涉及分布式数据处理领域,具体涉及一种用于在分布式环境中执行任务的 方法。本申请同时提供一种用于在分布式环境中执行任务的装置、以及一种分布式任务执 行系统。
【背景技术】
[0002] 对于一些简单的涉及数据处理的应用,通常采用一台数据处理设备(通常是计算 机)和一台数据存储设备(通常是数据库设备)就能够满足数据存储和应用的需求。但是 随着计算机和网络技术的发展,各种应用越来越多,出现了很多大型的应用系统,一方面数 据处理任务越来越复杂,计算工作量越来越大,一台计算机的资源(内存,CPU,网络)通常 无法支撑其运行;另一方面,数据量的急剧增长也使得仅采用一台数据库设备无法满足数 据存储和访问的需求。
[0003] 在单机单库的系统架构已经无法满足需求的情况下,出现了基于分布式技术的多 机多库架构:在数据处理层面由计算集群中的多台计算机负责执行数据处理任务,而数据 存储则采用分库分表技术,将业务数据垂直分配到数据库集群的多台数据库上,也就是说, 每台计算机只负责处理某一台或者几台数据库中的数据,由计算集群中的所有计算机共同 协作完成整个数据处理任务。显然,采用最初的单机单库架构,不存在任务分配和调节的需 求,然而发展到多机多库的架构方式,就必须要考虑如何为每台计算机分配数据处理任务。
[0004] 现有的解决方案,通常采用固定配置的方式,即:由管理人员根据系统中每台计算 机的硬件配置、数量以及存储待处理数据的数据库设备的数量等信息,采用特定的算法计 算每台计算机负责处理哪些数据库数据,并将计算结果写入每台计算机的配置文件中,每 台计算机在启动的时候读取所述配置文件,从而获知自己负责处理的数据,并进行相应的 处理。
[0005] 采用上述方式,在系统规模比较小、比较稳定的情况下可以满足应用需求,但是随 着系统规模的扩展,计算集群中的计算机数量越来越多、数据库集群中的数据库设备也越 来越多,采用上述配置方式的弊端日益明显:
[0006] ( -)由于需要管理员在系统启动之前对每一台计算机逐一进行配置,过程繁琐、 效率低,而且容易出错,可能出现某些数据被重复处理、而某些数据因为被遗漏而得不到处 理的情况。
[0007] (二)特别是,当系统配置发生变化时,例如:为了提升系统能力进行扩容导致计 算集群或者数据库集群中的设备数量增加,或者某台设备发生故障无法正常工作或者数据 库设备发生了主备切换的情况,现有解决方案仍然只能依靠人工干预的方式,由管理员根 据当前系统的最新状况,重新进行计算并根据计算结果更新每台计算机的配置文件,然后 触发每台计算机重新启动并执行新的数据处理任务。由于需要人工介入,整个处理过程繁 琐、效率也比较低、而且从系统配置发生变化到数据处理设备执行新的数据处理任务之间, 通常存在比较长的滞后时间,可能会影响业务数据的正确处理。

【发明内容】

[0008] 本申请提供一种用于在分布式环境中执行任务的方法,以解决现有技术通过人工 方式为数据处理设备分配任务导致配置过程繁琐、效率低、以及对系统配置变化反应滞后 的问题。本申请另外提供一种用于在分布式环境中执行任务的装置,以及一种分布式任务 执打系统。
[0009] 本申请提供一种用于在分布式环境中执行任务的方法,所述方法在执行数据处理 任务的设备上实施,包括:
[0010] 接收根据当前系统配置执行数据处理任务的通知消息;
[0011] 获取当前系统配置信息,所述系统配置信息包括:数据处理设备和待处理数据单 元的相关信息、以及任务分配算法;
[0012] 根据所述数据处理设备和待处理数据单元的相关信息,采用所述任务分配算法确 定本数据处理设备负责处理的待处理数据单元;
[0013] 针对所述待处理数据单元,按照预先设定的方式执行数据处理任务。
[0014] 可选的,所述待处理数据单元是指,存储待处理数据的数据库;相应的,所述待处 理数据单元的相关信息包括:存储待处理数据的数据库的数目、和存储待处理数据的数据 库标识;
[0015] 所述数据处理设备的相关信息包括:所述数据处理设备的数目、和数据处理设备 的标识。
[0016] 可选的,所述接收根据当前系统配置执行数据处理任务的通知消息包括:
[0017] 接收本数据处理设备的启动消息;或者,
[0018] 接收当前系统配置发生变更的通知消息。
[0019] 可选的,当接收所述当前系统配置发生变更的通知消息后,在执行所述获取当前 系统配置信息的步骤前,执行下述操作:
[0020] 判断当前是否正在执行数据处理任务,若是,结束当前正在执行的数据处理任务。
[0021] 可选的,所述任务分配算法是负载均衡算法。
[0022] 可选的,所述根据所述数据处理设备和待处理数据单元的相关信息,采用所述任 务分配算法确定本数据处理设备负责处理的待处理数据单元,包括:
[0023] 用存储待处理数据的每个数据库的标识与所述数据处理设备的数目执行取模操 作,将得到的结果作为负责处理相应数据库的数据处理设备编号,得到数据库标识与数据 处理设备编号之间的对应关系;
[0024] 根据每个数据处理设备的标识进行排序,并将本数据处理设备对应的排序号作为 本数据处理设备的编号;
[0025] 根据本数据处理设备的编号以及所述数据库标识与数据处理设备编号之间的对 应关系,获取本数据处理设备负责处理的数据库标识。
[0026] 可选的,所述数据库标识是指,数据库的IP地址;所述数据处理设备标识是指,所 述数据处理设备的IP地址。
[0027] 可选的,所述按照预先设定的方式执行数据处理任务是指,采用定时启动的方式 执行数据处理任务。
[0028] 可选的,所述针对所述待处理数据单元,按照预先设定的方式执行数据处理任务 包括:
[0029] 根据本数据处理设备负责处理的数据库的IP地址,与所述数据库建立连接;
[0030] 通过已建立的连接,访问所述数据库中的待处理数据并进行处理。
[0031] 可选的,当所述接收根据当前系统配置执行数据处理任务的通知消息是指接收当 前系统配置发生变更的通知消息时,所述方法包括:
[0032] 向负责监听数据处理设备相关信息变更的管理设备定期上报本数据处理设备的 运行状况;或者,
[0033] 针对接收到的来自所述管理设备的请求上报本数据处理设备的运行状况;
[0034] 相应的,所述接收当前系统配置发生变更的通知消息是指,接收所述管理设备发 送的所述通知消息。
[0035] 可选的,所述管理设备是Zooke印er服务器;或者,
[0036] Zooke印er服务器或配置中心服务器,其中Zooke印er服务器负责监听数据处理 设备的相关信息的变更,配置中心服务器负责监听存储待处理数据的数据库的相关信息的 变更以及任务分配算法的变更。
[0037] 相应的,本申请还提供一种用于在分布式环境中执行任务的装置,所述装置部署 在执行数据处理任务的设备上,包括:
[0038] 消息接收单元,用于接收根据当前系统配置执行数据处理任务的通知消息;
[0039] 信息获取单元,用于获取当前系统配置信息,所述系统配置信息包括:数据处理设 备和待处理数据单元的相关信息、以及任务分配算法;
[0040] 数据确定单元,用于根据所述数据处理设备和待处理数据单元的相关信息,采用 所述任务分配算法确定本数据处理设备负责处理的待处理数据单元;
[0041] 任务执行单元,用于针对所述待处理数据单元,按照预先设定的方式执行数据处 理任务。
[0042] 可选的,所述消息接收单元具体用于,接收本数据处理设备的启动消息;或者,接 收当前系统配置发生变更的通知消息。
[0043] 可选的,所述装置还包括:
[0044] 任务结束单元,用于在所述消息接收单元接收到当前系统配置发生变更的通知消 息后,以及触发所述信息获取单元工作之前,判断当前是否正在执行数据处理任务,若是, 结束当前正在执行的数据处理任务。
[0045] 可选的,所述数据确定单元采用的任务分配算法是负载均衡算法。
[0046] 可选的,所述数据确定单元包括:
[0047] 对应关系获取子单元,用于用存储待处理数据的每个数据库的标识与所述数据处 理设备的数目执行取模操作,将得到的结果作为负责处理相应数据库的数据处理设备编 号,得到数据库标识与数据处理设备编号之间的对应关系;
[0048] 设备编号获取子单元,用于根据每个数据处理设备的标识进行排序,并将本数据 处理设备对应的排序号作为本数据处理设备的编号;
[0049] 数据库确定子单元,用于根据本数据处理设备的编号以及所述数据库标识与数据 处理设备编号之间的对应关系,获取本数据处理设备负责处理的数据库标识。
[0050] 可选的,所述任务执行单元具体用于,针对所述待处理数据单元,采用定时启动的 方式执行数据处理任务。
[0051] 可选的,所述任务执行单元包括:
[0052] 连接建立子单元,用于根据本数据处理设备负责处理的数据库的IP地址,与所述 数据库建立连接;
[0053] 数据处理子单元,用于通过已建立的连接,访问所述数据库中的待处理数据并进 行处理。
[0054] 可选的,所述消息接收单元具体用于接收当前系统配置发生变更的通知消息时, 所述装置包括:
[0055] 定期上报子单元,用于向负责监听数据处理设备相关信息变更的管理设备定期上 报本数据处理设备的运行状况;或者,
[0056] 按需上报子单元,用于针对接收到的来自所述管理设备的请求上报本数据处理设 备的运行状况;
[0057] 相应的,所述消息接收单元具体用于接收所述管理设备发送的所述通知消息。
[0058] 此外,本申请还提供一种分布式任务执行系统,包括:根据上述任意一项所述的用 于在分布式环境中执行任务的数据处理装置;用于存储待处理数据的数据库、和用于提供 系统配置信息、监听系统配置信息的变更以及向系统内的所述数据处理装置发送系统配置 变更的通知消息的管理设备,所述系统配置信息包括:系统内的所述数据处理装置和所述 数据库的相关信息以及任务分配算法。
[0059]
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1