CN107885594A - 分布式资源调度方法、调度节点及接入节点 - Google Patents

分布式资源调度方法、调度节点及接入节点 Download PDF

Info

Publication number
CN107885594A
CN107885594A CN201610874061.XA CN201610874061A CN107885594A CN 107885594 A CN107885594 A CN 107885594A CN 201610874061 A CN201610874061 A CN 201610874061A CN 107885594 A CN107885594 A CN 107885594A
Authority
CN
China
Prior art keywords
node
scheduling
resource
business
request
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
CN201610874061.XA
Other languages
English (en)
Other versions
CN107885594B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610874061.XA priority Critical patent/CN107885594B/zh
Priority to PCT/CN2017/103606 priority patent/WO2018059423A1/zh
Publication of CN107885594A publication Critical patent/CN107885594A/zh
Priority to US16/201,606 priority patent/US10838777B2/en
Application granted granted Critical
Publication of CN107885594B publication Critical patent/CN107885594B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • 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]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/54Interprogram communication
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种资源调度方法、调度节点及接入节点。该方法应用于调度节点,包括:接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的业务请求消息指示该接入节点中待处理的至少一个业务;获取至少一个资源节点的工作队列状态信息;及,针对每个接入节点,执行如下处理:根据业务请求消息和工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;向该接入节点发送调度结果,以使该接入节点根据调度结果向所分配的至少一个资源节点发送至少一个任务请求。利用这些技术方案,能够提高调度节点执行资源调度的效率和资源节点的资源利用率。

Description

分布式资源调度方法、调度节点及接入节点
技术领域
本申请涉及计算机处理领域,尤其涉及一种分布式资源调度方法、调度节点及接入节点。
背景技术
分布式计算是将一个复杂的任务或者应用分解成许多小的部分,分配给多台计算机进行并行处理。在进行资源调度时,调度节点根据接收到的请求,在多个资源节点中确定处理该请求的资源节点。
针对分布式计算,在现有的资源调度方法中,调度节点通过预先估计每个资源节点的处理能力,为每个请求分配相应的资源节点。如果对资源节点的处理能力的预计不够准确,则会造成整个系统的调度不合理,不能按照资源节点的真实能力来调度请求。此外,当各个请求需要的处理时间不同,且没有办法提前预知时,容易造成资源节点处理请求的负荷不均衡。因此,造成资源节点的资源分配不合理,从而导致资源利用率下降。
发明内容
有鉴于此,本发明提供了一种分布式资源调度方法、调度节点及接入节点,能够提高调度节点执行资源调度的效率和资源节点的资源利用率。
本发明的技术方案是这样实现的:
本发明提供了一种资源调度方法,应用于调度节点,所述方法包括:
接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的所述业务请求消息指示该接入节点中待处理的至少一个业务;
获取至少一个资源节点的工作队列状态信息;及,
针对每个接入节点,执行如下处理:
根据所述业务请求消息和所述工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;
向该接入节点发送所述调度结果,以使该接入节点根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
本发明还提供了一种资源调度方法,应用于接入节点,所述方法包括:
接收针对待处理的至少一个业务的任务请求;
从至少一个调度节点中选择一调度节点,向该调度节点发送指示所述至少一个业务的业务请求消息,以使该调度节点根据所述业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;及,
从该调度节点接收所述调度结果,并根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
本发明又提供了一种调度节点,包括:
接收模块,用于接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的所述业务请求消息指示该接入节点中待处理的至少一个业务;
获取模块,用于获取至少一个资源节点的工作队列状态信息;及,
资源调度模块,用于针对每个接入节点,执行如下处理:根据所述接收模块接收的业务请求消息和所述获取模块获取的工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;
发送模块,用于向该接入节点发送所述资源调度模块得到的调度结果,以使该接入节点根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
本发明提供了一种接入节点,包括接收模块、选择模块和发送模块,其中,
所述接收模块用于,接收针对待处理的至少一个业务的任务请求;
所述选择模块用于,从至少一个调度节点中选择一调度节点;
所述发送模块用于,向所述选择模块选出的调度节点发送指示所述接收模块中至少一个业务的业务请求消息,以使该调度节点根据所述业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;及,
所述接收模块进一步用于,从该调度节点接收所述调度结果;
所述发送模块进一步用于,根据所述接收模块接收的调度结果向所分配的至少一个资源节点发送至少一个任务请求。
与现有技术相比,本发明提供的方法,使得调度节点无需管理每个具体的业务请求以及无需预先估计每个资源节点的处理能力,通过将业务请求消息和工作队列状态信息进行匹配来完成资源调度,可以避免部分资源节点满载而部分资源节点空载的情况,即使各个业务的请求所需的处理时间不同、资源节点的处理能力不同,仍可以保障各个资源节点的工作队列的长度基本处于同一水平线,在集群压力较大时,可以保证所有资源节点都满负荷运行,从而提高了调度节点执行资源调度的效率以及资源节点执行任务请求时的资源利用率。
附图说明
图1为本发明实施例所涉及的分布式资源调度系统的结构示意图;
图2为依据本发明一实施例的资源调度方法的流程示意图;
图3为依据本发明另一实施例的资源调度方法的流程示意图;
图4为依据本发明一实施例的资源调度方法的交互示意图;
图5为依据本发明另一实施例的资源调度方法的交互示意图;
图6为依据本发明又一实施例的资源调度方法的交互示意图;
图7为依据本发明一实施例的调度节点的结构示意图;
图8为依据本发明一实施例的调度节点设备的结构示意图;
图9为依据本发明一实施例的接入节点的结构示意图;
图10为依据本发明一实施例的接入节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例所涉及的分布式资源调度系统的结构示意图。参见图1,该分布式资源调度系统100包括:接入节点1101~110L、调度节点1201~120M和资源节点1301~130N。其中,接入节点有L个,调度节点有M个,资源节点有N个。通常,N远大于L。
分布式资源调度系统100用于进行分布式计算,处理大型的计算任务,例如对一大的视频文件进行转码处理。所包括的这三类节点各自具备不同的功能。具体而言,接入节点1101~110L负责从上层接收对应某一业务的任务请求,向调度节点1201~120M上报各业务中请求的状态以申请资源,并控制与资源节点之间请求的执行。此外,接入节点1101~110L还可以定期向调度节点1201~120M转发各个资源节点1301~130N的工作队列状态信息。
调度节点1201~120M负责通过与接入节点1101~110L和/或资源节点1301~130N的交互维护各个资源节点的工作队列状态信息,并根据接入节点上报的请求状态向各个接入节点1101~110L分配资源节点。
资源节点1301~130N负责处理接入节点发来的任务请求,并向接入节点1101~110L、调度节点1201~120M上报本节点的工作队列状态信息。
图2为依据本发明一实施例的资源调度方法的流程示意图。该方法应用于调度节点。参见图2,该方法包括:
步骤201、接收至少一个接入节点发送的业务请求消息。
来自一接入节点的业务请求消息指示该接入节点中待处理的至少一个业务。具体而言,每个接入节点从上层业务管理单元接收各种业务的任务请求,并维护一个多业务的请求队列。所述任务请求用于指示请求处理针对某个业务的任务(task)。每当接收到针对一个业务的一个任务请求时,接入节点会将该任务请求写入该业务的请求队列中。业务请求消息携带有该接入节点中每个业务的请求队列中任务请求的个数。该业务请求消息也可称为队列报告包,用于接入节点向调度节点汇报当前每个业务中请求的状态。
接入节点可以在不同的时刻发送业务请求消息。这样,调度节点能够获知每个接入节点当前每个业务的请求队列中请求的个数。调度节点会根据接收到的各个接入节点的业务请求消息维护一个业务请求列表,在该列表中存储有接入节点的标识(ID)、每个业务的ID、请求队列中任务请求的个数No.。
表1给出了一个业务请求列表的示例,一共有L个接入节点,每个接入节点包括多个业务,如第l个接入节点包括Sl个业务,l=1,…L。例如,接入节点ID=1时,共有S1个业务,每个业务的请求队列中任务请求的个数不等,如业务ID=11时,请求队列中任务请求的个数No.=1;业务ID=1S1时,请求队列中任务请求的个数No.=0,即当前没有接收到任何任务请求。其中,接入节点ID也可以由接入节点的IP地址来表示。
表1业务请求列表
步骤202、获取至少一个资源节点的工作队列状态信息。
调度节点可以有以下两种方式获得至少一个资源节点的工作队列状态信息。
方式(1):从资源节点处获得
调度节点每隔预定时间间隔向每个资源节点发送状态监测消息,然后接收每个资源节点反馈的状态监测确认消息,该状态监测确认消息携带有该资源节点的工作队列状态信息。
例如,状态监测消息为一心跳包,调度节点会定期向每个资源节点发送心跳包。例如,该预定时间间隔为3秒。资源节点在收到调度节点发来的心跳包后,会向调度节点返回一个心跳确认(ACK)包(即状态监测确认消息),并实时产生一个此时该资源节点的工作队列状态信息,然后通过携带于心跳ACK包中将工作队列状态信息返回给调度节点。
方式(2):从接入节点处获得
调度节点会接收到每个接入节点发送的状态监测消息,状态监测消息携带有该接入节点获取到的至少一个资源节点的工作队列状态信息。其中,接入节点在与资源节点交互任务请求时,可以获得资源节点当前的工作队列状态信息。然后,接入节点在向调度节点发送状态监测消息时,携带上该接入节点获取到的至少一个资源节点的工作队列状态信息。此时,状态监测消息也可以是一心跳包。
本申请中,每个资源节点根据从接入节点接收到的待处理的任务请求建立一个工作队列,该工作队列中包括该资源节点正在处理的任务请求,所谓工作队列的长度是指该资源节点正在处理的任务请求的个数。
具体而言,工作队列状态信息包括第k个资源节点生成该工作队列状态信息时的时间戳tk和该资源节点的工作队列的长度qk,k=1,…,K。调度节点记录接收到的每个资源节点的工作队列状态信息,例如,建立一个工作队列状态表,并根据接收到的新信息进行维护。
表2为一个调度节点所建立的工作队列状态表的示例,一共有K个资源节点,每个资源节点的工作队列状态信息包括时间戳tk(包括日期和时间)和工作队列的长度qk
表2工作队列状态表
每当调度节点接收到一资源节点的工作队列状态信息,根据时间戳tk的先后顺序更新所记录的该资源节点的工作队列状态信息。例如,调度节点本地记录的第k个资源节点的工作队列状态信息中时间戳为tk,队列长度为qk。在某个时刻调度节点又接收到第k个资源节点的工作队列状态信息,其中时间戳为tg,队列长度为qg。若tk>tg,即在时间先后顺序上tg为相对最近的时刻,则更新本地的工作队列状态信息,令tk=tg,qk=qg,否则,就放弃本次更新,维持之前的记录不变。
步骤203、针对每个接入节点,根据业务请求消息和工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果。
调度节点在执行资源调度时,包括如下步骤:
步骤2031、根据工作队列的长度从至少一个资源节点中确定出空闲的资源节点。
具体为,调度节点预先设置一个资源节点的工作队列的长度门限Q。若一资源节点的工作队列的长度qk<Q,则认为该资源节点为空闲节点,否则认为该资源节点为繁忙节点。例如,Q=3。
步骤2032、预先设置该接入节点中各个业务的优先级。
调度节点会为各个业务划分优先级,并在本地预先配置每个业务所属的优先级P,其中,优先级高的业务优先获得资源节点。例如,P={0,1,2,3},其中,0代表最高优先级。如表1所示,接入节点ID=1时,所包括的业务ID=11所属的优先级为最高级0,业务ID=12所属的优先级为1。
步骤2033、根据优先级从高到低的排序,依次轮询每个接入节点的各个业务,为每个业务分配Mj个空闲的资源节点。
业务请求消息中携带有一接入节点的各个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,J为业务的总数,那么调度节点在执行资源调度时,将为每个业务分配Mj个空闲的资源节点。
具体调度时,调度节点会依次轮询所有接入节点中是否具有优先级为0的业务。若有,则针对该业务队列中的每个请求,分配一个空闲的资源节点,并把该分配的资源节点的工作队列长度qk加1。直到所有接入节点中没有最高优先级0的业务后,调度节点开始调度优先级为1的业务,以此类推。
若一接入节点中包括相同优先级的多个业务,如表1所示,接入节点ID=2时,所包括的业务ID=21和ID=22所属的优先级均为最高级0。那么,可以在一次轮询时为这几个相同优先级的业务都分配资源节点,或者也可以在一次轮询时只为其中的一个业务分配资源节点。
若调度节点在分配过程中,空闲的资源节点被分配完毕,则停止本次调度;或者,为所有节点的所有业务都已分配完毕,则停止本次调度。
步骤204、向该接入节点发送调度结果,以使该接入节点根据调度结果向所分配的至少一个资源节点发送至少一个任务请求。
调度节点在完成资源调度后,将调度结果通知给接入节点。在调度结果中指示每个业务ID对应的所分配的资源节点的ID,即针对该接入节点的各个业务,指定每个业务被分到哪几个资源节点。其中,每个业务中的一个请求对应一个资源节点,即为第j个业务将会分配Mj个资源节点。然后,接入节点根据接收到的调度结果,从相应的请求队列中,取出数量相同的任务请求分别发送给调度结果中给出的资源节点进行处理。即从第j个业务的请求队列中取出Mj个任务请求,分别向Mj个调度的资源节点中的每个资源节点发送一个任务请求。在完成调度后,就资源节点而言,一个资源节点可以处理多个任务请求。
在本实施例中,通过接收至少一个接入节点发送的业务请求消息,获取至少一个资源节点的工作队列状态信息,使得调度节点无需管理每个具体的业务请求,并且无需预先估计每个资源节点的处理能力;针对每个接入节点,根据业务请求消息和工作队列状态信息执行资源调度,为该接入节点的每个业务调度至少一个资源节点,可以避免部分资源节点满载而部分资源节点空载的情况,即使各个业务请求所需的处理时间不同、资源节点的处理能力不同,仍可以保障各个资源节点的工作队列的长度基本处于同一水平线,在集群压力较大时,可以保证所有资源节点都满负荷运行,从而提高了资源调度的效率,提高了调度节点、资源节点的处理效率和资源利用率。
在一具体场景中,上层业务管理单元接收各种视频转码业务的任务请求,接入节点具体为视频接入节点(access),用于从上层业务管理单元持续接收针对视频转码业务的任务请求,并写入相应视频转码业务的请求队列,然后向在线且正常工作的视频调度节点(或称为视频控制机master)发送队列报告包。视频调度节点获取到视频资源节点(或称为视频工作机worker)的工作队列状态信息,以及结合接收到的队列报告包执行资源调度,为每个视频转码业务分配资源节点。
图3为依据本发明另一实施例的资源调度方法的流程示意图。该方法应用于接入节点。参见图3,该方法包括:
步骤301、接收针对待处理的至少一个业务的任务请求。
本步骤中,上层业务管理单元会将各种业务的任务请求发送给接入节点。接入节点生成至少一个业务的请求队列,并负责维护一个多业务的请求队列。接入节点生成至少一个业务的请求队列,每当接收到针对一个业务的一个任务请求时,将该任务请求写入该业务的请求队列中。这样,每个业务对应一个请求队列,每个请求队列中包括一个或多个任务请求。每个任务请求到达的时刻不同,并且每个任务请求所需的处理时间也可以不同,比如几秒钟,或者几分钟等。
步骤302、从至少一个调度节点中选择一调度节点,向该调度节点发送指示至少一个业务的业务请求消息。
本步骤中,业务请求消息携带有每个业务的请求队列中任务请求的个数。例如,接入节点目前一共接收到J个业务的请求,第j个业务的请求队列中任务请求的个数为Mj,j=1,…,J。这样,该调度节点可以根据业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,为每个业务调度至少一个资源节点并生成调度结果。
此外,接入节点发送业务请求消息的触发事件可以有以下两种:
(1)接入节点在接收到一任务请求、写入到相应业务的请求队列后,立即触发发送,即选择一个调度节点并向该调度节点发送业务请求消息。
(2)接入节点持续接收任务请求,但按照一个预定的周期触发发送业务请求消息,例如,每隔T秒选择一个调度节点并向该调度节点发送业务请求消息。
其中,上述方式(2)适用于任务请求到达的太过频繁的情况,按照周期进行
上报,可以节省接入节点的处理负荷。
步骤303、从该调度节点接收调度结果,并根据调度结果向所分配的至少一个资源节点发送至少一个任务请求。
对应步骤204的描述,接入节点根据接收到的调度结果,从每个业务的请求队列中,取出数量相同的任务请求发送给调度结果中给出的资源节点进行处理。即从第j个业务的请求队列中取出Mj个任务请求,分别向Mj个调度的资源节点中的每个资源节点发送一个任务请求。也就说,在完成调度后,一个任务请求对应一个资源节点,而一个资源节点可以处理多个任务请求。
在上述实施例中,通过生成至少一个业务的请求队列,每当接收到针对一业务的任务请求时,将该任务请求写入该业务的请求队列中,从至少一个调度节点中选择一调度节点,向该调度节点发送针对请求队列的业务请求消息,只要有一个调度节点在线并且能正常工作,那么接入节点就可以向其发送业务请求消息并进行正常的资源调度,无需对分布式系统中所有调度节点的性能做出要求。
此外,调度节点只需接收接入节点上报的业务请求消息,业务请求消息仅携带有该接入节点中每个业务的请求队列中任务请求的个数,因此,自身无需管理每个任务请求的具体状态,例如接收到任务请求的时间以及该任务请求所需的处理时间等,从而降低了调度节点的处理负荷,减少了调度节点的故障发生率,提高了调度节点设备的资源利用率。
图4为依据本发明一实施例的资源调度方法的交互示意图,以一个接入节点为例,涉及到该接入节点、至少一个调度节点和至少一个资源节点之间的交互。如图4所示,包括如下步骤:
步骤401、接入节点接收针对待处理的至少一个业务的任务请求。
步骤402、接入节点从至少一个调度节点中选择一调度节点。
步骤403、接入节点向所选择的调度节点发送针对请求队列的业务请求消息。
步骤404、每个调度节点获取至少一个资源节点的工作队列状态信息。
步骤405、每个调度节点根据接收到的业务请求消息和至少一个资源节点的工作队列状态信息执行资源调度,为各个接入节点的每个业务调度至少一个资源节点并生成调度结果。
步骤406、调度节点向接入节点返回相应的调度结果。
步骤407、接入节点向所分配的资源节点发送任务请求。
步骤408、所分配的资源节点根据接收到的任务请求执行相应的处理。
图5给出了依据本发明另一实施例的资源调度方法的交互示意图,针对上述步骤402和步骤403给出了一种具体实现方式。如图5所示,包括如下步骤:
步骤501、接入节点生成至少一个业务的请求队列,每当接收到针对一业务的任务请求时,将该任务请求写入该业务的请求队列中。
步骤502、接入节点每隔预定时间间隔分别向每个调度节点发送状态监测消息。
本步骤中,接入节点预先配置好所有调度节点的IP地址,状态监测消息可以为心跳包。接入节点定期向每个调度节点发送心跳包,例如,预定时间间隔为T秒。
步骤503、一在线的调度节点向接入节点反馈状态监测确认消息。
例如,在线的调度节点在收到接入节点发送的心跳包后,立即向接入节点回复心跳ACK包。
步骤504、接入节点根据接收到的状态监测确认消息,确定该调度节点在线,并根据接收到状态监测确认消息的时刻,对所有在线的调度节点按照时间先后顺序进行排序。
然后,根据排序结果依次向每个在线的调度节点发送业务请求消息,同时监测是否接收到该在线的调度节点反馈的业务请求确认消息。即根据在线的调度节点是否能够正常工作的情况,循环执行步骤505和506,当接收到一调度节点反馈的业务请求确认消息时则停止。
步骤505、根据排序结果向第i个在线的调度节点发送业务请求消息。
这里,i的初始值1。即接入节点首先选择第一个在线的调度节点,向其发送业务请求消息,或者称为队列报告包。
步骤506、第i个在线并且正常工作的调度节点向接入节点反馈业务请求确认消息。
第i个调度节点在收到接入节点发送的队列报告包后,如果工作正常,会立即向接入节点回复一队列报告包ACK包,即业务请求确认消息。
如果接入节点没有收到第一个在线的调度节点发送的队列报告包ACK包,则认为该在线的调度节点无法正常工作或者故障,则i=i+1,向第二个在线的调度节点发送队列报告包。以此类推。
步骤507、接入节点根据业务请求确认消息确定出最终的调度节点。
若所有的调度节点都不在线或者没有回复队列报告包ACK包,则接入节点放弃本次调度请求。
步骤508、每个调度节点每隔预定时间间隔向每个资源节点发送状态监测消息。
步骤509,每个资源节点向相应的调度节点反馈状态监测确认消息,状态监测确认消息携带有该资源节点的工作队列状态信息。
如步骤202中方式(1)所述,调度节点定期向资源节点发送心跳包,通过接收反馈的心跳ACK包,来获取资源节点的工作队列状态信息。
步骤508和步骤509也可以与步骤501-506并行执行。
步骤510、调度节点根据接收到的业务请求消息和每个资源节点的工作队列状态信息执行资源调度,为各个接入节点的每个业务调度至少一个资源节点并生成调度结果。
步骤511、调度节点向发送业务请求消息的接入节点返回相应的调度结果。
步骤512、接入节点向所分配的资源节点发送任务请求。
步骤513、所分配的资源节点根据接收到的任务请求执行相应的处理。
图6为依据本发明又一实施例的资源调度方法的交互示意图。如步骤202中方式(2)所述,调度节点也可以从接入节点处获得至少一个资源节点的工作队列状态信息。如图6所示。
步骤601、接入节点生成至少一个业务的请求队列,每当接收到针对一业务的任务请求时,将该任务请求写入该业务的请求队列中。
步骤602、接入节点定期分别向每个调度节点发送心跳包。
在一实施例中,当接收到资源节点反馈的工作队列状态信息(见步骤612和/或步骤614)后,接入节点在心跳包中携带上该接入节点在一定时间间隔内获取到的资源节点的工作队列状态信息。在发送完毕后,接入节点将清空本地所存储的资源节点的工作队列状态信息。
此外,调度节点在接收到接入节点发送的携带有工作队列状态信息的心跳包后,可以触发执行步骤608。
步骤603、一在线的调度节点向接入节点反馈心跳ACK包。
步骤604、接入节点根据接收到的心跳ACK包,确定该调度节点在线,并根据接收到心跳ACK包的时刻,对所有在线的调度节点按照时间先后顺序进行排序。
然后,根据排序结果依次向每个在线的调度节点发送队列报告包,同时监测是否接收到该在线的调度节点反馈的队列报告包ACK包。
步骤605、根据排序结果向第i个在线的调度节点发送队列报告包。
步骤606、第i个在线并且正常工作的调度节点向接入节点反馈队列报告包ACK包。
若第i个在线的调度节点无法正常工作或者故障,则i=i+1,向下一个在线的调度节点发送队列报告包,以此类推,直到接收到一调度节点反馈的队列报告包ACK包。
步骤607、接入节点根据接收到的队列报告包ACK包确定出最终的调度节点。
若所有的调度节点都不在线或者没有回复队列报告包ACK包,则接入节点放弃本次调度请求。
步骤608、调度节点根据接收到的队列报告包和每个资源节点的工作队列状态信息执行资源调度,为各个接入节点的每个业务调度至少一个资源节点并生成调度结果。
步骤609、调度节点向发送业务请求消息的接入节点返回相应的调度结果。
步骤611、接入节点向所分配的资源节点发送任务请求。
步骤612、所分配的资源节点在处理接收到的任务请求之前,向接入节点返回携带有该资源节点的工作队列状态信息的请求接收确认消息。
该请求接收确认消息用于指示确认接收到一任务请求。
步骤613、所分配的资源节点根据接收到的任务请求执行相应的处理。
步骤614、所分配的资源节点在处理完接收到的任务请求之后,向接入节点返回携带有该资源节点的工作队列状态信息的请求处理确认消息。
该请求处理确认消息用于指示确认已处理完接收到的任务请求。
在上述实施例中,资源节点可以在两个时刻向接入节点上报工作队列状态信息:
一个是如步骤612所述,在处理接收到的任务请求之前,时间戳为接收到任务请求、还未进行处理的时刻,此时,工作队列的长度是当前长度qk+1;
另一个是如步骤614所述,在处理完毕接收到的任务请求之后,时间戳为处理完毕的那个时刻,此时,工作队列的长度是当前长度qk-1。
可见,这两个时刻上报的工作队列状态信息是不同的,反映了资源节点不同的工作状态,在经由接入节点转发给调度节点后,可以用于资源调度。
此外,在上述实施例中,触发调度节点执行资源调度的事件也有两个:
一个是,如步骤602之后,接入节点在定期发送心跳包时,将获取到的资源节点的工作队列状态信息携带在心跳包中发送给调度节点,这表明资源节点的工作队列的状态可能有所变化,调度节点可以启动资源调度。
另一个是,如步骤607之后,调度节点接收到接入节点发送的队列报告包,这表明有新的任务请求来了,调度节点也可以启动资源调度。
可见,上述两个事件分别指示了资源节点的工作状态和接入节点的请求状态,都可以触发调度节点重新进行资源调度,以将空闲的资源节点充分利用起来,满足新的任务请求。
图7为依据本发明一实施例的调度节点的结构示意图。如图7所示,调度节点700包括:
接收模块710,用于接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的业务请求消息指示该接入节点中待处理的至少一个业务;
获取模块720,用于获取至少一个资源节点的工作队列状态信息;
资源调度模块730,用于针对每个接入节点,执行如下处理:根据接收模块710接收的业务请求消息和获取模块720获取的工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;
发送模块740,用于向该接入节点发送资源调度模块730得到的调度结果,以使该接入节点根据调度结果向所分配的至少一个资源节点发送至少一个任务请求。
在一实施例中,接收模块710进一步用于,每隔预定时间间隔从每个接入节点接收状态监测消息;
发送模块740进一步用于,向该接入节点反馈状态监测确认消息,以使该接入节点在接收到状态监测确认消息之后,向调度节点发送业务请求消息;向该接入节点反馈业务请求确认消息。
在一实施例中,发送模块740进一步用于,每隔预定时间间隔向每个资源节点发送状态监测消息;
获取模块720用于,接收每个资源节点反馈的状态监测确认消息,状态监测确认消息携带有该资源节点的工作队列状态信息。
在一实施例中,获取模块720用于,接收每个接入节点发送的状态监测消息,状态监测消息携带有该接入节点获取到的至少一个资源节点的工作队列状态信息。
在一实施例中,获取模块720用于,记录每个资源节点的工作队列状态信息,其中,工作队列状态信息包括该资源节点生成该工作队列状态信息时的时间戳;当获取到一资源节点的工作队列状态信息时,根据时间戳的先后顺序更新所记录的该资源节点的工作队列状态信息。
在一实施例中,业务请求消息携带有一接入节点的J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,工作队列状态信息包括一资源节点的工作队列的长度,资源调度模块730用于,根据工作队列的长度从至少一个资源节点中确定出空闲的资源节点;预先设置每个接入节点中各个业务的优先级;根据优先级从高到低的排序,依次轮询每个接入节点的各个业务,为第j个业务分配Mj个空闲的资源节点。
图8为依据本发明一实施例的调度节点设备的结构示意图。该调度节点设备800包括:处理器810、存储器820、端口830以及总线840。处理器810和存储器820通过总线840互联。处理器810可通过端口830接收和发送数据。其中,
处理器810用于执行存储器820存储的机器可读指令模块。
存储器820存储有处理器810可执行的机器可读指令模块。处理器810可执行的指令模块包括:接收模块821、获取模块822、资源调度模块823和发送模块824。其中,
接收模块821被处理器810执行时可以为:接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的业务请求消息指示该接入节点中待处理的至少一个业务;
获取模块822被处理器810执行时可以为:获取至少一个资源节点的工作队列状态信息;
资源调度模块823被处理器810执行时可以为:针对每个接入节点,执行如下处理:根据接收模块821接收的业务请求消息和获取模块822获取的工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;
发送模块824被处理器810执行时可以为:向该接入节点发送资源调度模块823得到的调度结果,以使该接入节点根据调度结果向所分配的至少一个资源节点发送至少一个任务请求。
由此可以看出,当存储在存储器820中的指令模块被处理器810执行时,可实现前述各个实施例中接收模块、获取模块、资源调度模块和发送模块的各种功能。
图9为依据本发明一实施例的接入节点的结构示意图。如图9所示,接入节点900包括:接收模块910、选择模块920和发送模块930,其中,
接收模块910用于,接收针对待处理的至少一个业务的任务请求;
选择模块920用于,从至少一个调度节点中选择一调度节点;
发送模块930用于,向选择模块920选出的调度节点发送指示接收模块910中至少一个业务的业务请求消息,以使该调度节点根据业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;
接收模块910进一步用于,从该调度节点接收调度结果;
发送模块930进一步用于,根据接收模块910接收的调度结果向所分配的至少一个资源节点发送至少一个任务请求。
在一实施例中,发送模块930用于,每隔预定时间间隔分别向每个调度节点发送状态监测消息;
选择模块920用于,当接收模块910接收到一调度节点反馈的状态监测确认消息时,确定该调度节点在线,根据接收到状态监测确认消息的时刻,对所有在线的调度节点按照时间先后顺序进行排序,根据排序结果控制发送模块930依次向每个在线的调度节点发送业务请求消息并同时监测接收模块910是否接收到该在线的调度节点反馈的业务请求确认消息;当接收模块910接收到一在线的调度节点反馈的业务请求确认消息时,将该在线的调度节点作为选择出的调度节点。
在一实施例中,接入节点900进一步包括:
生成模块940,用于为每个业务生成请求队列,每当接收模块910接收到针对一业务的一任务请求时,将该任务请求写入该业务的请求队列中;
其中,发送模块930发送的业务请求消息携带有J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,调度结果中指示为第j个业务分配Mj个资源节点,发送模块930用于,从生成模块940中生成的第j个业务的请求队列中取出Mj个任务请求,分别向所分配的每个资源节点发送一个任务请求。
在一实施例中,接收模块910进一步用于,在所分配的一资源节点处理接收到的任务请求之前,从该资源节点接收携带有该资源节点的工作队列状态信息的请求接收确认消息;和/或,在所分配的一资源节点处理完接收到的任务请求之后,从该资源节点接收携带有该资源节点的工作队列状态信息的请求处理确认消息;
发送模块930进一步用于,向该调度节点发送携带有各个资源节点的工作队列状态信息的状态监测消息,以使该调度节点根据状态监测消息获取到资源节点的工作队列状态信息。
图10为依据本发明一实施例的接入节点设备的结构示意图。如图10所示,接入节点设备1000包括:处理器1010、存储器1020、端口1030以及总线1040。处理器1010和存储器1020通过总线1040互联。处理器1010可通过端口1030接收和发送数据。其中,
处理器1010用于执行存储器1020存储的机器可读指令模块。
存储器1020存储有处理器1010可执行的机器可读指令模块。处理器1010可执行的指令模块包括:接收模块1021、选择模块1022和发送模块1023。其中,
接收模块1021被处理器1010执行时可以为:接收针对待处理的至少一个业务的任务请求;
选择模块1022被处理器1010执行时可以为:从至少一个调度节点中选择一调度节点;
发送模块1023被处理器1010执行时可以为:向选择模块1022选出的调度节点发送指示接收模块1021中至少一个业务的业务请求消息,以使该调度节点根据业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;
接收模块1021被处理器1010执行时进一步可以为:从该调度节点接收调度结果;
发送模块1023被处理器1010执行时进一步可以为:根据接收模块1021接收的调度结果向所分配的至少一个资源节点发送至少一个任务请求。
在一实施例中,处理器1010可执行的指令模块还包括:生成模块1024。
生成模块1024被处理器1010执行时可以为:为每个业务生成请求队列,每当接收模块1021接收到针对一业务的一任务请求时,将该任务请求写入该业务的请求队列中;
其中,发送模块1023发送的业务请求消息携带有J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,调度结果中指示为第j个业务分配Mj个资源节点,发送模块1023被处理器1010执行时可以为:从生成模块1024中生成的第j个业务的请求队列中取出Mj个任务请求,分别向所分配的每个资源节点发送一个任务请求。
由此可以看出,当存储在存储器1020中的指令模块被处理器1010执行时,可实现前述各个实施例中接收模块、选择模块、发送模块和生成模块的各种功能。
上述装置实施例中,各个模块实现自身功能的具体方法在方法实施例中均有描述,这里不再赘述。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类别的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此,本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (20)

1.一种分布式资源调度方法,其特征在于,应用于调度节点,所述方法包括:
接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的所述业务请求消息指示该接入节点中待处理的至少一个业务;
获取至少一个资源节点的工作队列状态信息;及,
针对每个接入节点,执行如下处理:
根据所述业务请求消息和所述工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;
向该接入节点发送所述调度结果,以使该接入节点根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
2.根据权利要求1所述的方法,进一步包括:
每隔预定时间间隔从每个接入节点接收状态监测消息,并向该接入节点反馈状态监测确认消息,以使该接入节点在接收到所述状态监测确认消息之后,向所述调度节点发送所述业务请求消息;
向该接入节点反馈业务请求确认消息。
3.根据权利要求1所述的方法,其中,所述获取至少一个资源节点的工作队列状态信息包括:
每隔预定时间间隔向每个资源节点发送状态监测消息;
接收每个资源节点反馈的状态监测确认消息,所述状态监测确认消息携带有该资源节点的所述工作队列状态信息。
4.根据权利要求1所述的方法,其中,所述获取至少一个资源节点的工作队列状态信息包括:
接收每个接入节点发送的状态监测消息,所述状态监测消息携带有该接入节点获取到的至少一个资源节点的工作队列状态信息。
5.根据权利要求1至4中任一项所述的方法,所述方法进一步包括:
记录每个资源节点的工作队列状态信息,其中,所述工作队列状态信息包括该资源节点生成该工作队列状态信息时的时间戳;
当获取到一资源节点的工作队列状态信息时,根据时间戳的先后顺序更新所记录的该资源节点的工作队列状态信息。
6.根据权利要求1至4中任一项所述的方法,其中,所述业务请求消息携带有一接入节点的J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,所述工作队列状态信息包括一资源节点的工作队列的长度,所述根据所述业务请求消息和所述工作队列状态信息执行资源调度包括:
根据所述工作队列的长度从所述至少一个资源节点中确定出空闲的资源节点;
预先设置每个接入节点中各个业务的优先级,其中,优先级高的业务优先获得资源节点;
根据所述优先级从高到低的排序,依次轮询每个接入节点的各个业务,为第j个业务分配Mj个空闲的资源节点。
7.一种分布式资源调度方法,其特征在于,应用于接入节点,所述方法包括:
接收针对待处理的至少一个业务的任务请求;
从至少一个调度节点中选择一调度节点,向该调度节点发送指示所述至少一个业务的业务请求消息,以使该调度节点根据所述业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;及,
从该调度节点接收所述调度结果,并根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
8.根据权利要求7所述的方法,其中,所述从至少一个调度节点中选择一调度节点,向该调度节点发送指示所述至少一个业务的业务请求消息包括:
每隔预定时间间隔分别向每个调度节点发送状态监测消息,当接收到一调度节点反馈的状态监测确认消息时,确定该调度节点在线;
根据接收到所述状态监测确认消息的时刻,对所有在线的调度节点按照时间先后顺序进行排序,根据排序结果依次向每个在线的调度节点发送所述业务请求消息并同时监测是否接收到该在线的调度节点反馈的业务请求确认消息;
当接收到一在线的调度节点反馈的业务请求确认消息时,将该在线的调度节点作为选择出的调度节点。
9.根据权利要求7所述的方法,进一步包括:
为每个业务生成请求队列,每当接收到针对一业务的一任务请求时,将该任务请求写入该业务的请求队列中;
其中,所述业务请求消息携带有J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,所述调度结果中指示为第j个业务分配Mj个资源节点,所述根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求包括:
从第j个业务的请求队列中取出Mj个任务请求,分别向所分配的每个资源节点发送一个任务请求。
10.根据权利要求7至9中任一项所述的方法,进一步包括:
在所分配的一资源节点处理接收到的任务请求之前,从该资源节点接收携带有该资源节点的所述工作队列状态信息的请求接收确认消息;和/或,在所分配的一资源节点处理完接收到的任务请求之后,从该资源节点接收携带有该资源节点的所述工作队列状态信息的请求处理确认消息;
向该调度节点发送携带有各个资源节点的工作队列状态信息的状态监测消息,以使该调度节点根据所述状态监测消息获取到资源节点的工作队列状态信息。
11.一种调度节点,其特征在于,包括:
接收模块,用于接收至少一个接入节点发送的业务请求消息,其中,来自一接入节点的所述业务请求消息指示该接入节点中待处理的至少一个业务;
获取模块,用于获取至少一个资源节点的工作队列状态信息;
资源调度模块,用于针对每个接入节点,执行如下处理:根据所述接收模块接收的业务请求消息和所述获取模块获取的工作队列状态信息执行资源调度,以为该接入节点中待处理的每个业务分配至少一个资源节点并生成调度结果;及,
发送模块,用于向该接入节点发送所述资源调度模块得到的调度结果,以使该接入节点根据所述调度结果向所分配的至少一个资源节点发送至少一个任务请求。
12.根据权利要求11所述的调度节点,其中,所述接收模块进一步用于,每隔预定时间间隔从每个接入节点接收状态监测消息;
所述发送模块进一步用于,向该接入节点反馈状态监测确认消息,以使该接入节点在接收到所述状态监测确认消息之后,向所述调度节点发送所述业务请求消息;向该接入节点反馈业务请求确认消息。
13.根据权利要求11所述的调度节点,其中,所述发送模块进一步用于,每隔预定时间间隔向每个资源节点发送状态监测消息;
所述获取模块用于,接收每个资源节点反馈的状态监测确认消息,所述状态监测确认消息携带有该资源节点的所述工作队列状态信息。
14.根据权利要求11所述的调度节点,其中,所述获取模块用于,接收每个接入节点发送的状态监测消息,所述状态监测消息携带有该接入节点获取到的至少一个资源节点的工作队列状态信息。
15.根据权利要求11至14中任一项所述的调度节点,其中,所述获取模块用于,记录每个资源节点的工作队列状态信息,其中,所述工作队列状态信息包括该资源节点生成该工作队列状态信息时的时间戳;当获取到一资源节点的工作队列状态信息时,根据时间戳的先后顺序更新所记录的该资源节点的工作队列状态信息。
16.根据权利要求11至14中任一项所述的调度节点,其中,所述业务请求消息携带有一接入节点的J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,所述工作队列状态信息包括一资源节点的工作队列的长度,所述资源调度模块用于,根据所述工作队列的长度从所述至少一个资源节点中确定出空闲的资源节点;预先设置每个接入节点中各个业务的优先级;根据所述优先级从高到低的排序,依次轮询每个接入节点的各个业务,为第j个业务分配Mj个空闲的资源节点。
17.一种接入节点,其特征在于,包括接收模块、选择模块和发送模块,其中,
所述接收模块用于,接收针对待处理的至少一个业务的任务请求;
所述选择模块用于,从至少一个调度节点中选择一调度节点;
所述发送模块用于,向所述选择模块选出的调度节点发送指示所述接收模块中至少一个业务的业务请求消息,以使该调度节点根据所述业务请求消息和获取到的至少一个资源节点的工作队列状态信息执行资源调度,以为待处理的每个业务分配至少一个资源节点并生成调度结果;
所述接收模块进一步用于,从该调度节点接收所述调度结果;
所述发送模块进一步用于,根据所述接收模块接收的调度结果向所分配的至少一个资源节点发送至少一个任务请求。
18.根据权利要求17所述的接入节点,其中,所述发送模块用于,每隔预定时间间隔分别向每个调度节点发送状态监测消息;
所述选择模块用于,当所述接收模块接收到一调度节点反馈的状态监测确认消息时,确定该调度节点在线,根据接收到所述状态监测确认消息的时刻,对所有在线的调度节点按照时间先后顺序进行排序,根据排序结果控制所述发送模块依次向每个在线的调度节点发送所述业务请求消息并同时监测所述接收模块是否接收到该在线的调度节点反馈的业务请求确认消息;当所述接收模块接收到一在线的调度节点反馈的业务请求确认消息时,将该在线的调度节点作为选择出的调度节点。
19.根据权利要求17所述的接入节点,进一步包括:
生成模块,用于为每个业务生成请求队列,每当所述接收模块接收到针对一业务的一任务请求时,将该任务请求写入该业务的请求队列中;
其中,所述发送模块发送的业务请求消息携带有J个业务的请求队列中任务请求的个数,第j个业务的任务请求个数为Mj,j=1,…J,所述调度结果中指示为第j个业务分配Mj个资源节点,所述发送模块用于,从第j个业务的请求队列中取出Mj个任务请求,分别向所分配的每个资源节点发送一个任务请求。
20.根据权利要求17至19中任一项所述的接入节点,其中,所述接收模块进一步用于,在所分配的一资源节点处理接收到的任务请求之前,从该资源节点接收携带有该资源节点的所述工作队列状态信息的请求接收确认消息;和/或,在所分配的一资源节点处理完接收到的任务请求之后,从该资源节点接收携带有该资源节点的所述工作队列状态信息的请求处理确认消息;
所述发送模块进一步用于,向该调度节点发送携带有各个资源节点的工作队列状态信息的状态监测消息,以使该调度节点根据所述状态监测消息获取到资源节点的工作队列状态信息。
CN201610874061.XA 2016-09-30 2016-09-30 分布式资源调度方法、调度节点及接入节点 Active CN107885594B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610874061.XA CN107885594B (zh) 2016-09-30 2016-09-30 分布式资源调度方法、调度节点及接入节点
PCT/CN2017/103606 WO2018059423A1 (zh) 2016-09-30 2017-09-27 分布式资源调度方法、调度节点及接入节点
US16/201,606 US10838777B2 (en) 2016-09-30 2018-11-27 Distributed resource allocation method, allocation node, and access node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610874061.XA CN107885594B (zh) 2016-09-30 2016-09-30 分布式资源调度方法、调度节点及接入节点

Publications (2)

Publication Number Publication Date
CN107885594A true CN107885594A (zh) 2018-04-06
CN107885594B CN107885594B (zh) 2020-06-12

Family

ID=61763142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610874061.XA Active CN107885594B (zh) 2016-09-30 2016-09-30 分布式资源调度方法、调度节点及接入节点

Country Status (3)

Country Link
US (1) US10838777B2 (zh)
CN (1) CN107885594B (zh)
WO (1) WO2018059423A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109788315A (zh) * 2019-01-31 2019-05-21 湖南快乐阳光互动娱乐传媒有限公司 视频转码方法、装置及系统
CN110636120A (zh) * 2019-09-09 2019-12-31 广西东信易联科技有限公司 一种基于业务请求的分布式资源协调系统及其方法
WO2020098346A1 (zh) * 2018-11-16 2020-05-22 京东数字科技控股有限公司 用于推送节点信息的方法和装置
CN111443870A (zh) * 2020-03-26 2020-07-24 腾讯科技(深圳)有限公司 一种数据处理的方法、设备及存储介质
CN112054923A (zh) * 2020-08-24 2020-12-08 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质
CN112887353A (zh) * 2019-11-29 2021-06-01 中国移动通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
CN114138500A (zh) * 2022-01-29 2022-03-04 阿里云计算有限公司 资源调度系统及方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148468B (zh) * 2019-06-28 2023-10-10 杭州海康威视数字技术股份有限公司 一种资源调度方法、装置、电子设备及存储介质
CN110968411A (zh) * 2019-12-06 2020-04-07 北京明略软件系统有限公司 定时任务调度方法、装置、服务器及存储介质
CN111338797B (zh) * 2020-02-19 2023-09-05 望海康信(北京)科技股份公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN111796950B (zh) * 2020-07-16 2023-06-30 网易(杭州)网络有限公司 数据处理方法和系统
CN111866159A (zh) * 2020-07-28 2020-10-30 阿戈斯智能科技(苏州)有限公司 人工智能服务的调用方法、系统、设备和存储介质
CN112114971A (zh) * 2020-09-28 2020-12-22 中国建设银行股份有限公司 一种任务分配方法、装置及设备
CN112689007B (zh) * 2020-12-23 2023-05-05 江苏苏宁云计算有限公司 资源分配方法、装置、计算机设备和存储介质
CN112948111B (zh) * 2021-02-26 2023-07-14 北京奇艺世纪科技有限公司 一种任务分配方法、装置、设备及计算机可读介质
CN113448737B (zh) * 2021-07-26 2024-03-22 北京清博智能科技有限公司 一种在多任务系统使用的高速均衡分配方法
CN113807924A (zh) * 2021-09-24 2021-12-17 华院分析技术(上海)有限公司 基于批量处理算法的业务处理分配方法、系统、存储介质及设备
CN114785794A (zh) * 2022-03-29 2022-07-22 北京字节跳动网络技术有限公司 资源分配方法、装置、设备、介质、程序产品和系统
CN114924877B (zh) * 2022-05-17 2023-10-17 江苏泰坦智慧科技有限公司 一种基于数据流的动态分配计算方法、装置和设备
CN115996466B (zh) * 2023-03-23 2023-06-27 广州世炬网络科技有限公司 基于传输链路参数的节点功能切换控制方法及装置
CN116149827A (zh) * 2023-04-04 2023-05-23 云粒智慧科技有限公司 分布式任务调度系统和分布式任务调度执行系统
CN116909780B (zh) * 2023-09-12 2023-11-17 天津卓朗昆仑云软件技术有限公司 基于内存的本地分布式队列插件、系统和队列处理方法
CN117519951B (zh) * 2024-01-04 2024-05-03 深圳博瑞天下科技有限公司 基于消息中台的实时数据处理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202761A (zh) * 2007-12-04 2008-06-18 赵晓宇 一种分布式资源调度系统及其方法
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法
CN102033777A (zh) * 2010-09-17 2011-04-27 中国资源卫星应用中心 基于ice的分布式作业调度引擎
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN103414657A (zh) * 2013-08-22 2013-11-27 浪潮(北京)电子信息产业有限公司 一种跨数据中心的资源调度方法、超级调度中心和系统
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理系统和方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
US6213652B1 (en) * 1995-04-18 2001-04-10 Fuji Xerox Co., Ltd. Job scheduling system for print processing
US5787304A (en) * 1996-02-05 1998-07-28 International Business Machines Corporation Multipath I/O storage systems with multipath I/O request mechanisms
US9377979B1 (en) * 2009-06-09 2016-06-28 Breezyprint Corporation Secure mobile printing from a third-party device with proximity-based device listing
JP2011192250A (ja) * 2010-02-22 2011-09-29 Canon Inc クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法
JP2012083845A (ja) * 2010-10-07 2012-04-26 Canon Inc クラウドコンピューティングシステム、情報処理方法及びプログラム
US9367276B2 (en) * 2011-02-23 2016-06-14 Ricoh Company, Ltd. Resolution of conflicts between print jobs and printers in a print shop environment
CN103699445B (zh) * 2013-12-19 2017-02-15 北京奇艺世纪科技有限公司 一种任务调度方法、装置及系统
KR102254099B1 (ko) * 2014-05-19 2021-05-20 삼성전자주식회사 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템
CN104363300B (zh) * 2014-11-26 2018-06-05 浙江宇视科技有限公司 一种服务器集群中计算任务分布式调度装置
US10073714B2 (en) * 2015-03-11 2018-09-11 Western Digital Technologies, Inc. Task queues
US10509675B2 (en) * 2018-02-02 2019-12-17 EMC IP Holding Company LLC Dynamic allocation of worker nodes for distributed replication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202761A (zh) * 2007-12-04 2008-06-18 赵晓宇 一种分布式资源调度系统及其方法
CN101957780A (zh) * 2010-08-17 2011-01-26 中国电子科技集团公司第二十八研究所 一种基于资源状态信息的网格任务调度处理器及方法
CN102033777A (zh) * 2010-09-17 2011-04-27 中国资源卫星应用中心 基于ice的分布式作业调度引擎
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN103414657A (zh) * 2013-08-22 2013-11-27 浪潮(北京)电子信息产业有限公司 一种跨数据中心的资源调度方法、超级调度中心和系统
CN104657214A (zh) * 2015-03-13 2015-05-27 华存数据信息技术有限公司 一种基于多队列和多优先级的大数据任务管理系统和方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020098346A1 (zh) * 2018-11-16 2020-05-22 京东数字科技控股有限公司 用于推送节点信息的方法和装置
CN109788315A (zh) * 2019-01-31 2019-05-21 湖南快乐阳光互动娱乐传媒有限公司 视频转码方法、装置及系统
CN110636120A (zh) * 2019-09-09 2019-12-31 广西东信易联科技有限公司 一种基于业务请求的分布式资源协调系统及其方法
CN110636120B (zh) * 2019-09-09 2022-02-08 广西东信易联科技有限公司 一种基于业务请求的分布式资源协调系统及其方法
CN112887353A (zh) * 2019-11-29 2021-06-01 中国移动通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
CN112887353B (zh) * 2019-11-29 2024-01-23 中国移动通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
CN111443870A (zh) * 2020-03-26 2020-07-24 腾讯科技(深圳)有限公司 一种数据处理的方法、设备及存储介质
CN112054923A (zh) * 2020-08-24 2020-12-08 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质
CN112054923B (zh) * 2020-08-24 2023-08-18 腾讯科技(深圳)有限公司 业务请求检测方法、设备及介质
CN114138500A (zh) * 2022-01-29 2022-03-04 阿里云计算有限公司 资源调度系统及方法
CN114138500B (zh) * 2022-01-29 2022-07-08 阿里云计算有限公司 资源调度系统及方法
WO2023143503A1 (zh) * 2022-01-29 2023-08-03 阿里云计算有限公司 资源调度系统及方法

Also Published As

Publication number Publication date
CN107885594B (zh) 2020-06-12
WO2018059423A1 (zh) 2018-04-05
US20190108069A1 (en) 2019-04-11
US10838777B2 (en) 2020-11-17

Similar Documents

Publication Publication Date Title
CN107885594A (zh) 分布式资源调度方法、调度节点及接入节点
US7065567B1 (en) Production server for automated control of production document management
CN106330987A (zh) 动态负荷均衡方法
CN101084680B (zh) 在电信服务和/或网络管理平台中管理资源的方法、相应平台及其计算机程序产品
CN110350609B (zh) Agv的充电管理方法及系统、设备和存储介质
CN107291547A (zh) 一种任务调度处理方法、装置及系统
US20080229320A1 (en) Method, an apparatus and a system for controlling of parallel execution of services
CN109471705A (zh) 任务调度的方法、设备及系统、计算机设备
CN101986272A (zh) 一种云计算环境下的任务调度方法
CN107968802A (zh) 一种资源调度的方法、装置和过滤式调度器
CN109783225B (zh) 一种多租户大数据平台的租户优先级管理方法及系统
CN105677441B (zh) 虚拟机迁移方法、虚拟设施管理器及协调器
CN113051019A (zh) 流程任务执行管控方法、装置以及设备
CN107864211A (zh) 集群资源调度方法及系统
CN111459642B (zh) 一种分布式系统中故障处理和任务处理方法及装置
CN111190691A (zh) 适用于虚拟机的自动迁移方法、系统、装置及存储介质
CN109117244B (zh) 一种虚拟机资源申请排队机制的实现方法
CN115829538A (zh) 一种终端运维服务管理系统
CN110196773B (zh) 统一调度计算资源的多时间尺度安全校核系统及方法
KR100845707B1 (ko) 컨테이너 터미널의 다중분산 작업계획 시스템 및 이를이용한 다중분산 작업계획 방법
CN110955504B (zh) 智能分配渲染任务的方法、服务器、系统及存储介质
CN100473065C (zh) 一种面向网格的机群作业管理系统及其实现方法
CN112653571B (zh) 一种基于虚拟机与容器的混合调度方法
CN109634749B (zh) 一种分布式统一调度方法及设备
Sudo et al. An agent behavior technique in an autonomous decentralized manufacturing system

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
GR01 Patent grant
GR01 Patent grant