CN110597608A - 任务处理方法和装置、分布式系统以及存储介质 - Google Patents

任务处理方法和装置、分布式系统以及存储介质 Download PDF

Info

Publication number
CN110597608A
CN110597608A CN201910865734.9A CN201910865734A CN110597608A CN 110597608 A CN110597608 A CN 110597608A CN 201910865734 A CN201910865734 A CN 201910865734A CN 110597608 A CN110597608 A CN 110597608A
Authority
CN
China
Prior art keywords
task
node
target node
distributed system
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910865734.9A
Other languages
English (en)
Other versions
CN110597608B (zh
Inventor
王亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910865734.9A priority Critical patent/CN110597608B/zh
Publication of CN110597608A publication Critical patent/CN110597608A/zh
Application granted granted Critical
Publication of CN110597608B publication Critical patent/CN110597608B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明实施例提供了一种任务处理方法和装置、分布式系统以及存储介质。该方法包括:第一目标节点创建原始任务,第一目标节点包括分布式系统中的任意一个及一个以上节点;第一目标节点将原始任务保存到原始任务队列中;第二目标节点定期从原始任务队列中拉取原始任务,第二目标节点为分布式系统中的任意一个节点;第二目标节点对拉取的原始任务进行封装,得到明细任务,并将明细任务存储到明细任务队列中;第二目标节点将明细任务队列中的明细任务分配给第三目标节点,第三目标节点包括分布式系统中的任意一个及一个以上节点;第三目标节点执行分配的明细任务。本发明实施例提供的技术方案能够降低分布式系统的任务创建和调度对单个节点的依赖性。

Description

任务处理方法和装置、分布式系统以及存储介质
技术领域
本发明涉及大数据领域,尤其涉及一种任务处理方法和装置、分布式系统以及存储介质。
背景技术
目前,随着大数据应用场景的不断增加,为了提高数据处理效率,通常采用分布式系统进行数据处理。传统的分布式系统均采用集中式的任务调度机制,即,通过一个任务管理中心作为主节点来统一创建、分配及管理任务,整个分布式系统对主节点的依赖较强,当主节点因为某些原因无法正常运行时,整个分布式系统的调度功能将无法运行。
发明内容
有鉴于此,本发明实施例提供了一种任务处理方法和装置、分布式系统以及存储介质,用以降低分布式系统的任务创建和调度对单个节点的依赖性。
第一方面,本发明实施例提供了一种任务处理方法,应用于分布式系统中,所述分布式系统包括多个节点,所述方法包括:第一目标节点创建原始任务,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点;所述第一目标节点将所述原始任务保存到原始任务队列中;所述第二目标节点定期从所述原始任务队列中拉取原始任务,所述第二目标节点为所述分布式系统中的任意一个节点;所述第二目标节点对拉取的原始任务进行封装,得到明细任务,并将所述明细任务存储到明细任务队列中;所述第二目标节点将所述明细任务队列中的明细任务分配给第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点;所述第三目标节点执行分配的明细任务。
第二方面,本发明实施例提供了一种任务处理方法,应用于分布式系统中的第一目标节点,所述分布式系统包括多个节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述方法包括:所述第一目标节点创建原始任务;所述第一目标节点将所述原始任务保存到原始任务队列中。
第三方面,本发明实施例提供了一种任务处理方法,应用于分布式系统中的第二目标节点,所述分布式系统包括多个节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述方法包括:所述第二目标节点定期从所述原始任务队列中拉取原始任务;所述第二目标节点对拉取的原始任务进行封装,得到明细任务,并将所述明细任务存储到明细任务队列中;所述第二目标节点将所述明细任务队列中的明细任务分配给第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点。
第四方面,本发明实施例提供了一种任务处理方法,应用于分布式系统中的第三目标节点,所述分布式系统包括多个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述方法包括:所述第三目标节点执行第二目标节点分配的明细任务,所述第二目标节点为所述分布式系统中的任意一个节点。
第五方面,本发明实施例提供了一种任务处理方法,应用于分布式系统中,所述分布式系统包括多个节点,所述方法包括:第一目标节点创建任务,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点;所述第一目标节点将所述任务保存到第一任务队列中;第二目标节点定期从所述第一任务队列中拉取任务,并从所述分布式系统包括的多个节点中确定出第三目标节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点;所述第三目标节点执行所述第二目标节点从所述第一任务队列中拉取的任务。
第六方面,本发明实施例提供了一种任务处理装置,应用于分布式系统的节点,所述分布式系统包括第一目标节点、第二目标节点、第三目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点、所述第二目标节点、所述第三目标节点执行第一方面所述的方法。
第七方面,本发明实施例提供了一种任务处理装置,应用于分布式系统的第一目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点执行第二方面所述的方法。
第八方面,本发明实施例提供了一种任务处理装置,应用于分布式系统的第二目标节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述装置使所述第二目标节点执行第三方面所述的方法。
第九方面,本发明实施例提供了一种任务处理装置,应用于分布式系统的第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第三目标节点执行第四方面所述的方法。
第十方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第二方面所述的方法。
第十一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第三方面所述的方法。
第十二方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第四方面所述的方法。
第十三方面,本发明实施例提供了一种任务处理装置,应用于分布式系统的节点,所述分布式系统包括第一目标节点、第二目标节点、第三目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点、所述第二目标节点、所述第三目标节点执行第五方面所述的方法。
第十四方面,本发明实施例提供了一种分布式系统中的节点,所述节点执行第二方面所述的方法。
第十五方面,本发明实施例提供了一种分布式系统中的节点,所述节点执行第三方面所述的方法。
第十六方面,本发明实施例提供了一种分布式系统中的节点,所述节点执行第四方面所述的方法。
第十七方面,本发明实施例提供了一种分布式系统,包括第十四方面所述的节点、第十五方面所述的节点、以及第十六方面所述的节点。
本发明实施例中,分布式系统至少包括三类节点:第一目标节点、第二目标节点、第三目标节点,第一目标节点创建原始任务,并将原始任务保存到原始任务队列中;第二目标节点定期从原始任务队列中拉取原始任务,第二目标节点对拉取的原始任务进行封装,得到明细任务,并将明细任务存储到明细任务队列中;第二目标节点将明细任务队列中的明细任务分配给第三目标节点;第三目标节点执行分配的明细任务,第一目标节点、第三目标节点均包括分布式系统中的任意一个及一个以上节点,第二目标节点为分布式系统中的任意一个节点,分布式系统中任务的创建、调度以及执行均不依赖于特定的节点,任意一个节点发生故障都不会影响分布式系统创建、调度以及执行任务,因此本发明实施例提供的技术方案能够降低分布式系统的任务创建和调度对单个节点的依赖性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的分布式系统的架构示意图;
图2是本发明第一实施例提供的一种可选的任务处理方法的流程图;
图3是本发明第一实施例提供的一种可选的保存原始任务的示意图;
图4是本发明第一实施例提供的一种可选的根据原始任务构建明细任务的示意图;
图5是本发明第一实施例提供的一种可选的重新执行失败任务的流程图;
图6是本发明第二实施例提供的一种可选的任务处理方法的流程图。
具体实施方式
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
对本发明实施例提供的方案进行具体说明之前,先对本发明实施例涉及到的技术术语进行解释。
分布式系统:包括多个通过通信网络连接的节点,多个节点可以是多个不同的服务器,多个服务器之间可以通过网络连接。
任务:执行逻辑的承载单元,通常具有周期性,在分布式系统中会被作为一个基本的调度单元。
原始任务:未关联具体的任务逻辑,在本方案中,原始任务通过任务执行周期为划分依据,任务执行周期例如1分钟、10分钟、1天等。
明细任务:实际需要执行的任务,关联有具体的任务逻辑,通过对原始任务进行封装得到。
本发明实施例提供了一种任务处理方法,该方法应用于分布式系统,分布式系统包括多个通过通信网络连接的节点,分布式系统中的每个节点都可以进行任务创建、任务调度及任务执行,分布式集群中任何一个节点的上线和下线都不会影响整个分布式系统的任务创建、调度,从而提高了分布式系统运行的稳定性。
图1为本发明实施例提供的分布式系统的架构示意图,如图1所示,该分布式系统包括多个节点1,多个节点1可以是多个不同的服务器,多个服务器之间可以通过网络连接,网络2用以在节点1之间提供通信链路的介质,网络2可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
在本发明实施例提供的分布式系统中,可以将分布式系统中的节点分为至少三类:
第一类节点:创建原始任务的节点。
第二类节点:将原始任务封装为明细任务,并调度明细任务的节点。
第三类节点:执行明细任务的节点。
分布式系统包括:至少一个第一类节点、一个第二类节点、至少一个第三类节点。
其中,第一类节点、第二类节点、第三类节点可以不相同,也可以有部分相同。
例如,分布式系统一共有100个节点,其中,第一类节点有20个,分别为节点1至节点20;第二类节点有1个,为节点50;第三类节点有30个,分别为节点71至节点100。这种情况下,第一类节点、第二类节点、第三类节点没有重合的节点。
再例如,分布式系统一共有100个节点,其中,第一类节点有20个,分别为节点1至节点20;第二类节点有1个,为节点50;第三类节点有30个,分别为节点1至节点30。这种情况下,节点1至节点20为第一类节点和第三类节点中重合的节点,节点1至节点20既用于创建原始任务,又用于执行明细任务。
再例如,分布式系统一共有100个节点,其中,第一类节点有20个,分别为节点1至节点20;第二类节点有1个,为节点8;第三类节点有30个,分别为节点1至节点30。这种情况下,节点1至节点20为第一类节点和第三类节点中重合的节点;节点8为第一类节点、第二类节点和第三类节点中重合的节点。节点1至节点7、节点9至节点20既用于创建原始任务,又用于执行明细任务。节点8既用于创建原始任务,又用于将原始任务封装为明细任务,还用于执行明细任务。
在本发明实施例中,第一类节点又称为第一目标节点;第二类节点又称为第二目标节点;第三类节点又称为第三目标节点。
如背景技术中所提到的,传统的分布式系统均采用集中式的任务调度机制,即,通过一个任务管理中心作为主节点来统一创建、分配及管理任务,整个分布式系统对主节点的依赖较强,当主节点因为某些原因无法正常运行时,整个分布式系统的调度功能将无法运行,整个集群系统管理将陷入瘫痪。
而在本发明实施例中,各个节点的地位可以是相对平等的,任何一个节点都可以作为创建任务、调度任务或执行任务的节点。如果负责调度任务的节点出现故障,则可以使用任意一个正常工作的节点作为调度任务的节点。如果创建任务或执行任务的节点出现故障,则可以停止使用故障节点,用一个正常工作的节点来代替出现故障的节点。任何一个节点出现故障都不会影响整个分布式系统的任务创建、调度和执行,分布式系统的正常工作不依赖于任何节点,从而降低了分布式系统对单个节点的依赖性,保证了分布式系统在任何一个节点发生故障的情况下都能够正常工作。
实施例1
请参见图2,所示为本发明第一实施例提供的一种任务处理方法的流程图,该方法包括:步骤S201至步骤S205。
步骤S201:创建并保存原始任务。具体地,请参阅图3,第一目标节点创建原始任务并将原始任务保存到原始任务队列中。
步骤S202:监听定时事件。具体地,第二目标节点监听定时事件。如果监听到定时事件,则执行步骤S203。
步骤S203:拉取原始任务。具体地,第二目标节点从原始任务队列中拉取原始任务。
步骤S204:构建明细任务并保存。具体地,第二目标节点根据原始任务构建明细任务,并将明细任务保存到明细任务队列中。
请参阅图4,假设一共有9个原始任务,分别为原始任务1、原始任务2、……原始任务9。其中,原始任务1-3为分钟级任务,即,一分钟为一个执行周期;原始任务4-6为小时级任务,即,一小时为一个执行周期;原始任务7-9为天级任务,即,一天为一个执行周期。将这9个原始任务分别进行封装,得到多个明细任务,将得到的明细任务保存到明细任务队列中。由第二目标节点对明细任务队列中的明细任务进行调度,具体地,由第二目标节点决定哪些节点来执行明细任务。这些执行明细任务的节点即为第三目标节点。第二目标节点将明细任务分配给第三目标节点,第三目标节点执行明细任务。
步骤S205:执行明细任务。具体地,第三目标节点执行明细任务队列中的明细任务。
请参见图5,在步骤S205之后,本发明第一实施例提供的任务处理方法还可以包括步骤S206和步骤S207。
步骤S206:将执行失败的明细任务保存到失败任务队列。具体地,第三目标节点在执行明细任务之后,判断是否执行成功,如果执行失败,则第三目标节点将执行失败的明细任务存储到失败任务队列中。
步骤S207:拉取失败任务并重新执行。具体地,可以由第二目标节点从失败任务队列中拉取失败任务,并重新将失败任务分配给第三目标节点,以使得第三目标节点执行失败任务。通过设计上述任务失败补偿机制,能够对执行失败的任务进行重新处理,保证了系统的可靠性。
本发明实施例提供了一种任务处理方法,该方法应用于分布式系统,分布式系统包括多个通过通信网络连接的节点,分布式系统中的每个节点都可以进行任务创建、任务调度及任务执行,分布式集群中任何一个节点的上线和下线都不会影响整个分布式系统的任务创建、调度,从而提高了分布式系统运行的稳定性。相对于传统的分布式系统而言,不依赖于作为任务管理中心的中心节点,避免了中心化的管理方式,同时,在分布式系统的节点发生变化的时候,系统能够动态的重新分摊所有的任务的创建、调度和执行,实现了更高的可靠性和实用性。
实施例2
请参见图6,所示为本发明第二实施例提供的应用于分布式系统的任务处理方法的流程图,该方法包括步骤S601至步骤S604。
步骤S601:第一目标节点创建任务,第一目标节点包括分布式系统中的任意一个及一个以上节点。
针对任务的创建过程,用户可以是根据实际需求预先确定需要创建的任务数量及类型,再结合节点数量及各个节点的承载能力等因素预先定义各个节点的任务创建配置信息,即下文的预设信息,各个节点根据预设信息创建任务,其中,每个节点所配置的预设信息可以是相同的。本发明列举了其中的一种通过预设信息创建任务的方式,基于此,在步骤S601:第一目标节点创建任务之前,还包括以下步骤:分布式系统包括的多个节点中的每个节点根据预设信息,判断自身是否需要创建任务,其中,将自身需要创建任务的节点作为第一目标节点。
作为一种可选的实施方式,预设信息包括创建比例,其中,创建比例表示需要创建任务的节点的数量与分布式系统包括的所有节点的数量之间的比值,创建比例是大于0并且小于等于1的任意数,例如可以为20%、50%,80%、100%等等,每个节点通过定期获取上述预设信息,并根据预设信息判断当前是否需要创建任务。
不同类型的任务的创建比例可以是相同的,也可以是不同的。每种类型任务的创建比例可以是以下两种情况中的任意一种:第一种情况为创建比例等于100%,表示分布式系统中的每个节点均需要创建该类型的任务;第二种情况为创建比例大于0且小于100%,表示分布式系统的部分节点需要创建该类型的任务。
预设信息除了包括创建比例,还可以包括任务执行周期,任务执行周期指的是每隔多长时间任务被执行一次。例如,对于某一个类型的任务,任务执行周期是20秒,则表示该类型的任务每隔20秒被执行一次。
再例如,参见表1,对于第一种类型的任务,任务执行周期为1秒,创建比例为50%,即,分布式系统中50%的节点对第一种类型的任务进行创建,该类型的任务的执行周期为1秒。对于第二种类型的任务,任务执行周期为3600秒,创建比例为100%,即,分布式系统中100%的节点对第二种类型的任务进行创建,该类型的任务的执行周期为3600秒。
表1
任务 任务执行周期 创建比例
第一种类型的任务 1秒 50%
第二种类型的任务 3600秒 100%
当某一种任务的创建比例大于0且小于100%时,每个节点判断自身是否需要创建对应类型的任务可以通过以下方式实现:
方式一:主动式创建
预先对节点进行排序,对每个节点赋予一个节点编号,该排序可以是随机的,也可以根据节点的可用资源的数量排序。
例如,假设分布式系统中有100个节点,对节点随机排序并编号,得到节点1、节点2、……、节点100。假设创建比例为20%,则节点1、节点2、……节点20创建任务。
再例如,假设分布式系统中有100个节点,对节点按照可用资源由高到低的顺序进行排序,得到节点1、节点2、……、节点100。假设创建比例为20%,则节点1、节点2、……节点20创建任务。
方式二:被动式创建
随机定义分布式系统中的一个节点作为任务创建管理节点,当各个节点获取预设信息后,若预设信息所表征的信息中包含某一种或多种任务类型的创建比例大于0且小于100%,则除任务创建管理节点的其他节点将自身的可用资源的数量发送给任务创建管理节点,任务创建管理节点获取自身以及其他节点的可用资源的数量,并根据预设信息、以及任务创建管理节点自身和其他节点的可用资源的数量确定需要创建对应的任务类型的节点,并发送相应的指示信息给对应的需要创建对应的任务类型的节点,接收到指示信息的节点确定需要创建对应任务类型的任务。作为一种可选的实施方式,可以将上述第二目标节点作为任务创建管理节点。
可以理解,通过上述列举的主动式及被动式的任务创建机制,每个节点定期获取预设信息,并判断是否需要创建对应的任务,不限于某些特定的节点创建任务,不依赖于特定节点,单个节点发生故障不会影响分布式系统的任务的创建、调度和执行。
步骤S602:第一目标节点将任务保存到第一任务队列中。
步骤S603:第二目标节点定期从第一任务队列中拉取任务,并从分布式系统包括的多个节点中确定出第三目标节点,第二目标节点为分布式系统中的任意一个节点,第三目标节点包括分布式系统中的任意一个及一个以上节点。
第二目标节点可以监听一个定时事件,当监听到定时事件时,从第一任务队列中拉取任务,拉取的任务是自从上次拉取任务后第一任务队列中新增加的任务。例如,第二目标节点某一次拉取了1000条任务,则第二目标节点下一次不再拉取这1000条任务,而是拉取新增加的任务。
第二目标节点每次拉取的任务数量可以是固定值也可以是根据第一队列中任务的数量及当前业务场景动态调整的,在确定从第一任务队列中拉取的任务的数量时,可以考虑当前的节点数量、各个节点的承载能力、第一任务队列中任务的数量等因素中的一种或多种。
作为一种可选的实施方式,分布式系统中的每个节点向第二目标节点发送用于指示自身可用资源数量的信息。第二目标节点在筛选第三目标节点时,可以将节点的可用资源数量作为一个参考因素。例如,分布式系统中一共有200个节点,第二目标节点想要筛选出30个节点执行任务。则可以选择可用资源数量较多的30个节点作为第三目标节点,使这30个节点来执行任务。一般来说,节点的可用资源较多,说明节点比较空闲,还有余力承担其他任务。通过根据节点的可用资源来筛选出执行任务的节点,有利于负载均衡,提高整个分布式系统的工作效率。
步骤S604:第三目标节点执行第二目标节点从第一任务队列中拉取的任务。
本发明实施例中,分布式系统至少包括三类节点:第一目标节点、第二目标节点、第三目标节点,第一目标节点创建原始任务,并将原始任务保存到原始任务队列中;第二目标节点定期从原始任务队列中拉取原始任务,第二目标节点对拉取的原始任务进行封装,得到明细任务,并将明细任务存储到明细任务队列中;第二目标节点将明细任务队列中的明细任务分配给第三目标节点;第三目标节点执行分配的明细任务,第一目标节点、第三目标节点均包括分布式系统中的任意一个及一个以上节点,第二目标节点为分布式系统中的任意一个节点,分布式系统中任务的创建、调度以及执行均不依赖于特定的节点,任意一个节点发生故障都不会影响分布式系统创建、调度以及执行任务,因此本发明实施例提供的技术方案能够降低分布式系统的任务创建和调度对单个节点的依赖性。
可以理解,本发明采用分布式系统采用分散化的任务调度机制,分布式系统中的每个节点都可以创建任务、调度任务或执行任务,相对于传统的分布式系统而言,不依赖于作为任务管理中心的中心节点,避免了中心化的管理方式,同时,在分布式系统的节点发生变化的时候,系统能够动态的重新分摊所有的任务的创建、调度和执行,实现了更高的可靠性和实用性。
作为一种可选的实施方式,任务包括原始任务和明细任务,第一任务队列包括第一任务子队列和第二任务子队列,第一目标节点将任务保存到第一任务队列中,具体包括:第一目标节点将原始任务保存到第一任务子队列。
第二目标节点将从第一任务队列中拉取的任务分配给第三目标节点,具体包括:第二目标节点从第一任务子队列中拉取原始任务,并对原始任务进行封装,得到明细任务,并将明细任务存储到第二任务子队列中。第二目标节点将第二任务子队列中的明细任务分配给第三目标节点。
具体地,第二目标节点对原始任务进行封装具体为对原始任务进行逻辑定义的过程,由于原始任务只根据任务的执行周期进行分类,不具备实际的任务逻辑,通过第二目标节点对原始任务进行封装,对每个原始任务赋予实际的任务逻辑得到明细任务。可以理解,通常情况下,用户定义的任务往往依赖框架定义的一些规则,并作为调度的基本单元分配到任务调度节点中,导致任务定义与任务调度完全耦合,而本发明中的原始任务只根据任务的执行周期由各个节点定时生成,在分配的时候对原始任务进行封装得到明细任务,实现了任务调度与任务定义完全隔离。
实施例3
本发明实施例提供了一种任务处理装置,应用于分布式系统的节点,分布式系统包括第一目标节点、第二目标节点、第三目标节点,第一目标节点包括分布式系统中的任意一个及一个以上节点,第二目标节点为分布式系统中的任意一个节点,第三目标节点包括分布式系统中的任意一个及一个以上节点,装置使第一目标节点、第二目标节点、第三目标节点执行实施例1或实施例2所述的方法。
实施例4
本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行实施例1或实施例2所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (32)

1.一种任务处理方法,其特征在于,应用于分布式系统中,所述分布式系统包括多个节点,所述方法包括:
第一目标节点创建原始任务,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点;
所述第一目标节点将所述原始任务保存到原始任务队列中;
所述第二目标节点定期从所述原始任务队列中拉取原始任务,所述第二目标节点为所述分布式系统中的任意一个节点;
所述第二目标节点对拉取的原始任务进行封装,得到明细任务,并将所述明细任务存储到明细任务队列中;
所述第二目标节点将所述明细任务队列中的明细任务分配给第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点;
所述第三目标节点执行分配的明细任务。
2.根据权利要求1所述的方法,其特征在于,在所述第三目标节点执行分配的明细任务之后,所述方法还包括:
所述第三目标节点判断目标明细任务是否执行失败,所述目标明细任务为分配给所述第三目标节点的任意一个明细任务;
如果所述第三目标节点判断出所述目标明细任务执行失败,则所述第三目标节点将所述目标明细任务存储到第二任务队列中,所述第二任务队列用于保存执行失败的明细任务;
所述第二目标节点将所述第二任务队列中的明细任务重新分配给所述分布式系统中的节点。
3.根据权利要求2所述的方法,其特征在于,在所述第二目标节点将所述明细任务队列中的明细任务分配给第三目标节点之前,所述方法还包括:
所述第二目标节点确定从所述明细任务队列中拉取的任务的数量;
所述第二目标节点确定所述分布式系统包括的多个节点中每个节点的可用资源数量;
所述第二目标节点根据从所述明细任务队列中拉取的任务的数量和所述分布式系统包括的多个节点中每个节点的可用资源数量,从所述分布式系统包括的多个节点中筛选出所述第三目标节点。
4.根据权利要求1所述的方法,其特征在于,在所述第一目标节点创建原始任务之前,所述方法还包括:
所述分布式系统包括的多个节点中的每个节点根据预设信息,判断自身是否需要创建原始任务,其中,将自身需要创建原始任务的节点作为所述第一目标节点。
5.根据权利要求4所述的方法,其特征在于,所述预设信息包括:预先设置的目标比值,所述目标比值表示需要创建任务的节点的数量与所述分布式系统包括的所有节点的数量之间的比值,所述分布式系统包括的多个节点中的每个节点根据预设信息,判断自身是否需要创建任务,包括:
所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建原始任务。
6.根据权利要求5所述的方法,其特征在于,所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建原始任务,包括:
如果所述目标比值为100%,则所述分布式系统包括的多个节点中的每个节点确定自身需要创建原始任务。
7.根据权利要求5所述的方法,其特征在于,所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建原始任务,包括:
如果所述目标比值小于100%,则所述分布式系统包括的多个节点中的每个节点根据自身可用资源的数量确定自身是否需要创建原始任务。
8.一种任务处理方法,其特征在于,应用于分布式系统中的第一目标节点,所述分布式系统包括多个节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述方法包括:
所述第一目标节点创建原始任务;
所述第一目标节点将所述原始任务保存到原始任务队列中。
9.一种任务处理方法,其特征在于,应用于分布式系统中的第二目标节点,所述分布式系统包括多个节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述方法包括:
所述第二目标节点定期从原始任务队列中拉取原始任务,所述原始任务队列中存储有第一目标节点创建的原始任务,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点;
所述第二目标节点对拉取的原始任务进行封装,得到明细任务,并将所述明细任务存储到明细任务队列中;
所述第二目标节点将所述明细任务队列中的明细任务分配给第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点。
10.一种任务处理方法,其特征在于,应用于分布式系统中的第三目标节点,所述分布式系统包括多个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述方法包括:
所述第三目标节点执行第二目标节点分配的明细任务,所述第二目标节点为所述分布式系统中的任意一个节点。
11.一种任务处理方法,其特征在于,应用于分布式系统中,所述分布式系统包括多个节点,所述方法包括:
第一目标节点创建任务,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点;
所述第一目标节点将所述任务保存到第一任务队列中;
第二目标节点定期从所述第一任务队列中拉取任务,并从所述分布式系统包括的多个节点中确定出第三目标节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点;
所述第三目标节点执行所述第二目标节点从所述第一任务队列中拉取的任务。
12.根据权利要求11所述的方法,其特征在于,所述第三目标节点执行所述第二目标节点从所述第一任务队列中拉取的任务,包括:
所述第二目标节点将从所述第一任务队列中拉取的任务分配给所述第三目标节点;
所述第三目标节点执行所述第二目标节点分配的任务。
13.根据权利要求12所述的方法,其特征在于,在所述第二目标节点将从所述第一任务队列中拉取的任务分配给所述第三目标节点之前,所述方法还包括:
所述第二目标节点确定从所述第一任务队列中拉取的任务的数量;
所述第二目标节点确定所述分布式系统包括的多个节点中每个节点的可用资源数量;
所述第二目标节点根据从所述第一任务队列中拉取的任务的数量和所述分布式系统包括的多个节点中每个节点的可用资源数量,从所述分布式系统包括的多个节点中筛选出所述第三目标节点。
14.根据权利要求11所述的方法,其特征在于,在所述第一目标节点创建任务之前,所述方法还包括:
所述分布式系统包括的多个节点中的每个节点根据预设信息,判断自身是否需要创建任务,其中,将自身需要创建任务的节点作为所述第一目标节点。
15.根据权利要求14所述的方法,其特征在于,所述预设信息包括:预先设置的目标比值,所述目标比值表示需要创建任务的节点的数量与所述分布式系统包括的所有节点的数量之间的比值,所述分布式系统包括的多个节点中的每个节点根据预设信息,判断自身是否需要创建任务,包括:
所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建任务。
16.根据权利要求15所述的方法,其特征在于,所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建任务,包括:
如果所述目标比值为100%,则所述分布式系统包括的多个节点中的每个节点确定自身需要创建任务。
17.根据权利要求15所述的方法,其特征在于,所述分布式系统包括的多个节点中的每个节点根据所述目标比值,确定自身是否需要创建任务,包括:
如果所述目标比值小于100%,则所述分布式系统包括的多个节点中的每个节点根据自身可用资源的数量确定自身是否需要创建任务。
18.根据权利要求11所述的方法,其特征在于,在所述第一目标节点创建任务之前,所述方法还包括:
所述分布式系统包括的多个节点中的每个节点向所述第二目标节点上报自身可用资源的数量;
所述第二目标节点根据待创建的任务的数量以及所述分布式系统包括的多个节点中的每个节点可用资源的数量,确定出需要创建任务的节点,其中,将需要创建任务的节点作为所述第一目标节点。
19.根据权利要求11所述的方法,其特征在于,在所述第三目标节点执行所述第二目标节点从所述第一任务队列中拉取的任务之后,所述方法还包括:
所述第三目标节点判断目标任务是否执行失败,所述目标任务为分配给所述第三目标节点的任意一个任务;
如果所述第三目标节点判断出所述目标任务执行失败,则所述第三目标节点将所述目标任务存储到第二任务队列中,所述第二任务队列用于保存执行失败的任务;
所述第二目标节点将所述第二任务队列中的任务重新分配给所述分布式系统中的节点。
20.根据权利要求12所述的方法,其特征在于,所述任务包括原始任务和明细任务,所述第一任务队列包括第一任务子队列和第二任务子队列,
所述第一目标节点将所述任务保存到第一任务队列中,包括:
所述第一目标节点将所述原始任务保存到所述第一任务子队列,
所述第二目标节点将从所述第一任务队列中拉取的任务分配给所述第三目标节点,包括:
所述第二目标节点从所述第一任务子队列中拉取所述原始任务,并对所述原始任务进行封装,得到所述明细任务,并将所述明细任务存储到所述第二任务子队列中;
所述第二目标节点将所述第二任务子队列中的明细任务分配给所述第三目标节点。
21.一种任务处理装置,其特征在于,应用于分布式系统的节点,所述分布式系统包括第一目标节点、第二目标节点、第三目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点、所述第二目标节点、所述第三目标节点执行权利要求1-7任一项所述的方法。
22.一种任务处理装置,其特征在于,应用于分布式系统的第一目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点执行权利要求8所述的方法。
23.一种任务处理装置,其特征在于,应用于分布式系统的第二目标节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述装置使所述第二目标节点执行权利要求9所述的方法。
24.一种任务处理装置,其特征在于,应用于分布式系统的第三目标节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第三目标节点执行权利要求10所述的方法。
25.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求8所述的方法。
26.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求9所述的方法。
27.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求10所述的方法。
28.一种任务处理装置,其特征在于,应用于分布式系统的节点,所述分布式系统包括第一目标节点、第二目标节点、第三目标节点,所述第一目标节点包括所述分布式系统中的任意一个及一个以上节点,所述第二目标节点为所述分布式系统中的任意一个节点,所述第三目标节点包括所述分布式系统中的任意一个及一个以上节点,所述装置使所述第一目标节点、所述第二目标节点、所述第三目标节点执行权利要求11-20任一项所述的方法。
29.一种分布式系统中的节点,其特征在于,所述节点执行权利要求8所述的方法。
30.一种分布式系统中的节点,其特征在于,所述节点执行权利要求9所述的方法。
31.一种分布式系统中的节点,其特征在于,所述节点执行权利要求10所述的方法。
32.一种分布式系统,其特征在于,包括权利要求29所述的节点、权利要求30所述的节点、以及权利要求31所述的节点。
CN201910865734.9A 2019-09-12 2019-09-12 任务处理方法和装置、分布式系统以及存储介质 Active CN110597608B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910865734.9A CN110597608B (zh) 2019-09-12 2019-09-12 任务处理方法和装置、分布式系统以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910865734.9A CN110597608B (zh) 2019-09-12 2019-09-12 任务处理方法和装置、分布式系统以及存储介质

Publications (2)

Publication Number Publication Date
CN110597608A true CN110597608A (zh) 2019-12-20
CN110597608B CN110597608B (zh) 2023-08-22

Family

ID=68859238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910865734.9A Active CN110597608B (zh) 2019-09-12 2019-09-12 任务处理方法和装置、分布式系统以及存储介质

Country Status (1)

Country Link
CN (1) CN110597608B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416591A (zh) * 2020-11-25 2021-02-26 广州虎牙科技有限公司 分布式的任务处理方法、装置、设备、存储介质和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202761A (zh) * 2007-12-04 2008-06-18 赵晓宇 一种分布式资源调度系统及其方法
CN103455633A (zh) * 2013-09-24 2013-12-18 浪潮齐鲁软件产业有限公司 一种海量网络发票明细数据分布式分析方法
US8954985B2 (en) * 2012-06-05 2015-02-10 International Business Machines Corporation Dependency management in task scheduling
CN106293893A (zh) * 2015-06-26 2017-01-04 阿里巴巴集团控股有限公司 作业调度方法、装置及分布式系统
CN106933662A (zh) * 2017-03-03 2017-07-07 广东神马搜索科技有限公司 分布式系统及其调度方法和调度装置
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN109656690A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 调度系统、方法和存储介质
CN110008257A (zh) * 2019-04-10 2019-07-12 深圳市腾讯计算机系统有限公司 数据处理方法、装置、系统、计算机设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202761A (zh) * 2007-12-04 2008-06-18 赵晓宇 一种分布式资源调度系统及其方法
US8954985B2 (en) * 2012-06-05 2015-02-10 International Business Machines Corporation Dependency management in task scheduling
CN103455633A (zh) * 2013-09-24 2013-12-18 浪潮齐鲁软件产业有限公司 一种海量网络发票明细数据分布式分析方法
CN106293893A (zh) * 2015-06-26 2017-01-04 阿里巴巴集团控股有限公司 作业调度方法、装置及分布式系统
CN106933662A (zh) * 2017-03-03 2017-07-07 广东神马搜索科技有限公司 分布式系统及其调度方法和调度装置
CN109656690A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 调度系统、方法和存储介质
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN110008257A (zh) * 2019-04-10 2019-07-12 深圳市腾讯计算机系统有限公司 数据处理方法、装置、系统、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416591A (zh) * 2020-11-25 2021-02-26 广州虎牙科技有限公司 分布式的任务处理方法、装置、设备、存储介质和系统
CN112416591B (zh) * 2020-11-25 2023-10-13 广州虎牙科技有限公司 分布式的任务处理方法、装置、设备、存储介质和系统

Also Published As

Publication number Publication date
CN110597608B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
US11392561B2 (en) Data migration using source classification and mapping
US11847103B2 (en) Data migration using customizable database consolidation rules
CN105100259B (zh) 一种分布式定时任务执行方法和系统
CN103530189A (zh) 一种面向流式数据的自动伸缩及迁移的方法及装置
CN110058940B (zh) 一种多线程环境下的数据处理方法及装置
CN112114973A (zh) 一种数据处理方法及装置
CN109144783A (zh) 一种分布式海量非结构化数据备份方法及系统
CN107426323A (zh) 一种基于分布式的资源服务与可视化监控系统及方法
CN105791166B (zh) 一种负载均衡分配的方法及系统
CN111930493A (zh) 集群中NodeManager状态管理方法、装置及计算设备
CN105824697A (zh) 一种基于队列的分布式多级调度方法
CN114666335B (zh) 一种基于数据分发服务dds的分布式系统负载均衡装置
CN106293911A (zh) 分布式调度系统、方法
CN111352726B (zh) 一种基于容器化微服务的流数据处理方法及装置
CN115951983A (zh) 任务调度方法、装置、系统和电子设备
CN101446906A (zh) 一种多批处理任务的调度方法及系统
CN110597608A (zh) 任务处理方法和装置、分布式系统以及存储介质
Yao et al. Multi-dimensional scheduling in cloud storage systems
CN113760522A (zh) 一种任务处理方法和装置
CN111866210A (zh) 一种虚拟ip均衡分配方法、系统、终端及存储介质
CN111784185A (zh) 一种分布式配电通信网定时任务调度系统
CN112395269B (zh) MySQL高可用组的搭建方法及装置
CN114090201A (zh) 资源调度方法、装置、设备及存储介质
CN103973811A (zh) 一种可动态迁移的高可用集群管理方法
CN109302723A (zh) 一种基于互联网的多节点实时无线电监测控制系统及控制方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant