掌桥专利:专业的专利平台
掌桥专利
首页

一种调度方法、装置及设备

文献发布时间:2023-06-19 11:52:33


一种调度方法、装置及设备

技术领域

本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种调度方法、装置及设备。

背景技术

在一些分布式集群中,可以调度各处理设备轮流对服务请求进行处理。比如,假设分布式集群中包括三台处理设备:设备1、设备2和设备3,可以将接收到的第一个服务请求分配给设备1进行处理,将接收到的第二个服务请求分配给设备2进行处理,将接收到的第三个服务请求分配给设备3进行处理,将接收到的第四个服务请求再分配给设备1进行处理,等等,以此类推。

现有的调度方案中,大多是维护一个变量Num,Num的初始值可以为一个随机整数,设分布式集群中的处理设备数量为Length,对Num和Length进行取模操作,取模操作也就是计算B=Num%Length,B可以理解为处理设备的序号。读取处理设备B的地址,基于该地址将服务请求发送给处理设备B,然后将Num+1。

但是这种调度方案中,步骤较多,调度效率较低。

发明内容

有鉴于此,本说明书一个或多个实施例的目的在于提出一种调度方法、装置及设备,以提高调度效率。

基于上述目的,本说明书一个或多个实施例提供了一种调度方法,包括:

接收到服务请求后,调用环状链表;所述环状链表中的指针轮流指向各台处理设备的配置信息;

获取所述指针指向的处理设备的配置信息,作为当前处理设备的配置信息;

基于所述当前处理设备的配置信息,将所述服务请求发送至所述当前处理设备进行处理。

可选的,在所述获取所述指针指向的处理设备的配置信息,作为当前处理设备的配置信息之后,还包括:

根据所述环状链表中设定的各台处理设备的配置信息之间的顺序,将所述指针指向下一份配置信息。

可选的,所述配置信息包括:处理设备的地址和访问所述处理设备的认证信息。

可选的,所述环状链表由节点和指针组成;生成所述环状链表的过程包括:

获取可调度的各台处理设备的配置信息;

分别生成所述可调度的各台处理设备对应的节点,节点的数据包括其对应的处理设备的配置信息;

生成一个指针,所述指针指向一个节点。

可选的,所述方法还包括:

在检测到新增可调度的处理设备的情况下,获取新增的处理设备的配置信息,作为新增配置信息;

在所述环状链表中添加所述新增的处理设备对应的节点,添加的节点的数据包括所述新增配置信息。

可选的,所述方法还包括:

在检测到所述可调度的处理设备出现故障的情况下,确定出现故障的处理设备对应的所述环状链表中的节点,作为故障节点;

在所述环状链表中删除所述故障节点。

基于上述目的,本说明书一个或多个实施例还提供了一种调度装置,包括:

调用模块,用于接收到服务请求后,调用环状链表;所述环状链表中的指针轮流指向各台处理设备的配置信息;

获取模块,用于获取所述指针指向的处理设备的配置信息,作为当前处理设备的配置信息;

发送模块,用于基于所述当前处理设备的配置信息,将所述服务请求发送至所述当前处理设备进行处理。

可选的,所述环状链表由节点和指针组成;所述装置还包括:

生成模块,用于获取可调度的各台处理设备的配置信息;分别生成所述可调度的各台处理设备对应的节点,节点的数据包括其对应的处理设备的配置信息;生成一个指针,所述指针指向一个节点。

基于上述目的,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任意一种调度方法。

基于上述目的,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任意一种调度方法。

应用本发明所示实施例,接收到服务请求后,调用环状链表;环状链表中的指针轮流指向各台处理设备的配置信息;获取指针指向的处理设备的配置信息,作为当前处理设备的配置信息;基于当前处理设备的配置信息,将服务请求发送至当前处理设备进行处理;可见,本方案中,通过调用环状链表,直接获取到当前处理设备的配置信息,不需要执行取模、以及基于取模结果读取地址的步骤,简化了步骤,提高了调度效率。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种调度方法的流程示意图;

图2为本发明实施例提供的一种环状链表示意图;

图3为本发明实施例提供的环状链表中的节点示意图;

图4为本发明实施例提供的一种Round Robin Scheduling算法示意图;

图5为本发明实施例提供的一种调度装置的结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本说明书一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

为了达到上述目的,本发明实施例提供了一种调度方法、装置及设备,该方法及装置可以应用于各种电子设备,比如分布式集群中的管理设备等,具体不做限定。下面首先对调度方法进行详细介绍,以下内容中以执行主体为管理设备为例进行说明。

图1为本发明实施例提供的一种调度方法的流程示意图,包括:

S101:接收到服务请求后,调用环状链表;所述环状链表中的指针轮流指向各台处理设备的配置信息。

举例来说,管理设备可以与用户进行交互,管理设备可以接收用户提交的服务请求,后续内容中,管理设备调度处理设备对该服务请求进行处理。一种情况下,处理设备可以为分布式集群中对服务请求进行处理的服务器,或者也可以为其他设备,具体不做限定。

环状链表可以如图2所示,包括多个节点(节点1、节点2……节点N,N为正整数)和指针,每个节点的数据分别包括一台处理设备的配置信息,节点1的数据可以为处理设备1的配置信息,节点2的数据可以为处理设备2的配置信息……节点N的数据可以为处理设备N的配置信息。处理设备的配置信息可以包括处理设备的地址,或者还可以包括访问所述处理设备的认证信息,比如密钥信息等,具体不做限定。环状链表中的指针轮流指向各个节点。该指针可以为Header指针。

本发明实施例中,并不限定处理设备的配置信息的具体存储位置。举例来说,各台处理设备的配置信息可以不连续存储。一些相关调度方案中,通过数组存储配置信息,这种调度方案中,配置信息只能存储在连续的存储空间,存储方式不灵活。而本方案中,各台处理设备的配置信息可以不连续存储,提高了存储的灵活性。

S102:获取指针指向的处理设备的配置信息,作为当前处理设备的配置信息。

一种实施方式中,每次调用环状链表时,环状链表输出当前处理设备的配置信息,然后根据环状链表中设定的各台处理设备的配置信息之间的顺序,将所述指针指向下一份配置信息。

环状链表中的顺序可以预先设定。比如,可以对处理设备进行排序,确定每台处理设备的序号,指针按照该序号由大到小的顺序,或者由小到的顺序,轮流指向各台处理设备的配置信息。或者,指针也可以采用其他顺序,比如,先指向奇数序号,指完奇数序号后再指向偶数序号,或者也可以采用随机顺序,具体不做限定。一些情况下,预先设定的顺序使得每台处理设备被调度的机会均等。

一些相关调度方案中,维护一个变量Num,Num的初始值可以为一个随机整数,设分布式集群中的处理设备数量为Length,对Num和Length进行取模操作,取模操作也就是计算B=Num%Length,B可以理解为处理设备的序号。读取处理设备B的地址,基于该地址将服务请求发送给处理设备B,然后将Num+1。

这种调度方案中,对Num和Length进行取模操作、读取处理设备B的地址,再将Num+1,这三个步骤需要在一个原子操作中完成。原子操作也就是不会被线程调度机制打断的操作。

而本实施例的一种情况下,调用环状链表时的两个步骤“输出当前处理设备的配置信息”、“指针指向下一份配置信息”可以在一个原子操作中完成。这样,本方案在一个原子操作中执行两个步骤,相比于相关方案中在一个原子操作中执行三个步骤,本方案将三个步骤简化为两个步骤,提高了运算效率,进而提高了调度效率。

举例来说,假设管理设备接收到服务请求1,管理设备调用环状链表,此时环状链表中的指针指向处理设备1的配置信息,则环状链表可以输出处理设备1的配置信息,并将指针指向处理设备2的配置信息。假设管理设备又接收到服务请求2,管理设备调用环状链表,此时环状链表中的指针指向处理设备2的配置信息,则环状链表可以输出处理设备2的配置信息,并将指针指向处理设备3的配置信息。以此类推,不再赘述。

假设环状链表包括N台处理设备的配置信息,管理设备接收到服务请求N,管理设备调用环状链表,此时环状链表中的指针指向处理设备N的配置信息,则环状链表可以输出处理设备N的配置信息,并将指针指向处理设备1的配置信息。可以理解,链表为环状链表,处理设备N的配置信息的下一份配置信息为处理设备1的配置信息。

S103:基于当前处理设备的配置信息,将服务请求发送至当前处理设备进行处理。

管理设备可以按照与处理设备之间的通信协议,基于当前处理设备的配置信息以及服务请求,生成业务请求,将该业务请求发送至当前处理设备,以使当前处理设备对服务请求进行处理。

举例来说,假设管理设备与处理设备之间通过TCP(Transmission ControlProtocol,传输控制协议)通信连接,则管理设备可以按照TCP的通信机制,基于当前处理设备的配置信息以及服务请求,生成TCP请求,将该TCP请求发送至当前处理设备,以使当前处理设备对服务请求进行处理。

参考图2所示,环状链表由节点和指针组成;生成所述环状链表的过程可以包括:获取可调度的各台处理设备的配置信息;分别生成所述可调度的各台处理设备对应的节点,节点的数据包括其对应的处理设备的配置信息;生成一个指针,所述指针指向一个节点。

举例来说,管理设备可以通过调用通用接口,获取各台处理设备的配置信息。可以理解,如果处理设备故障,则管理设备不能获取到该处理设备的配置信息,也就是说,管理设备获取到的是未出现故障的处理设备的配置信息,即可调度的各台处理设备的配置信息。

分别生成可调度的各台处理设备对应的节点Node,Node可以如图3所示,包括Data(数据)和Next(与下一个节点之间的指向关系)。Data中包括处理设备的配置信息。本发明实施例中,并不限定处理设备的配置信息的具体存储位置。举例来说,各台处理设备的配置信息可以不连续存储。

指针可以为Header指针。指针的初始位置不做限定,比如,指针可以指向环状链表中的第一个节点,或者,也可以指向其他任意一个节点。

一种实施方式中,在检测到新增可调度的处理设备的情况下,获取新增的处理设备的配置信息,作为新增配置信息;在所述环状链表中添加所述新增的处理设备对应的节点,添加的节点的数据包括所述新增配置信息。

一种实施方式中,在检测到所述可调度的处理设备出现故障的情况下,确定出现故障的处理设备对应的所述环状链表中的节点,作为故障节点;在所述环状链表中删除所述故障节点。

本实施方式中,可以在环状链表中直接新增或删除节点。或者,其他实施方式中,如果检测到新增可调度的处理设备,或者检测到可调度的处理设备出现故障,可以重新生成环状链表。生成方式参考上述内容,这里不再赘述。

可以利用本发明所示实施例,实现轮叫调度(Round Robin Scheduling)算法。Round Robin Scheduling,是指以轮叫的方式依次调度不同的处理设备对服务请求进行处理,即每次调度执行i=(i+1)mod n,并选出第i台处理设备。Round Robin Scheduling算法具有简洁性,该算法中不需要记录当前连接的状态,是一种无状态调度。

可以将环状链表作为Round Robin Scheduling算法的基础数据载体。参考图4所示,可以预先生成算法函数对象,也就是预先生成环状链表:获取可调度的各台处理设备(处理设备1、处理设备2、处理设备3、处理设备4)的配置信息;分别生成所述可调度的各台处理设备对应的节点,节点的数据包括其对应的处理设备的配置信息。配置信息中可以包括地址、或者还包括认证信息,等等,具体不做限定。图4中示出的IP1表示处理设备1的IP(Internet Protocol,互联网协议)地址,IP2表示处理设备2的IP地址,IP3表示处理设备3的IP地址,IP4表示处理设备4的IP地址。生成一个Header指针,该Header指针指向一个节点。

接收到用户的服务请求后,调用Round Robin Scheduling算法函数,也就是调用环状链表,环状链表输出一台处理设备的配置信息。然后环状链表中的指针移动,指向下一个节点。

“输出配置信息”和“指针移动”这两个步骤可以在一个原子操作中完成。这样,本方案在一个原子操作中执行两个步骤,相比于相关方案中在一个原子操作中执行三个步骤,本方案将三个步骤简化为两个步骤,提高了运算效率,进而提高了调度效率。

基于环状链表输出的处理设备的配置信息,可以将用户的服务请求发送给相应的处理设备进行处理。

应用本发明所示实施例,第一方面,通过调用环状链表,直接获取到当前处理设备的配置信息,不需要执行取模、以及基于取模结果读取地址的步骤,简化了步骤,提高了调度效率。一种情况下,调用环状链表时的两个步骤“输出当前处理设备的配置信息”、“指针指向下一份配置信息”可以在一个原子操作中完成。这样,本方案在一个原子操作中执行两个步骤,相比于相关方案中在一个原子操作中执行三个步骤,本方案将三个步骤简化为两个步骤,提高了运算效率,进而提高了调度效率。

第二方面,本发明实施例中,并不限定处理设备的配置信息的具体存储位置。举例来说,各台处理设备的配置信息可以不连续存储。一些相关调度方案中,通过数组存储配置信息,这种调度方案中,配置信息只能存储在连续的存储空间,存储方式不灵活。而本方案中,各台处理设备的配置信息可以不连续存储,提高了存储的灵活性。

第三方面,可以利用本发明所示实施例,实现Round Robin Scheduling算法。将环状链表作为Round Robin Scheduling算法的基础数据载体,简化了算法步骤,提高了运算效率。

需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本发明实施例还提供一种调度装置,如图5所示,包括:

调用模块501,用于接收到服务请求后,调用环状链表;所述环状链表中的指针轮流指向各台处理设备的配置信息;

获取模块502,用于获取所述指针指向的处理设备的配置信息,作为当前处理设备的配置信息;

发送模块503,用于基于所述当前处理设备的配置信息,将所述服务请求发送至所述当前处理设备进行处理。

作为一种实施方式,所述装置还包括:

指针移动模块(图中未示出),用于在所述获取所述指针指向的处理设备的配置信息,作为当前处理设备的配置信息之后,根据所述环状链表中设定的各台处理设备的配置信息之间的顺序,将所述指针指向下一份配置信息。

作为一种实施方式,所述配置信息包括:处理设备的地址和访问所述处理设备的认证信息。

作为一种实施方式,所述环状链表由节点和指针组成;所述装置还包括:

生成模块(图中未示出),用于获取可调度的各台处理设备的配置信息;分别生成所述可调度的各台处理设备对应的节点,节点的数据包括其对应的处理设备的配置信息;生成一个指针,所述指针指向一个节点。

作为一种实施方式,所述生成模块,还用于在检测到新增可调度的处理设备的情况下,获取新增的处理设备的配置信息,作为新增配置信息;在所述环状链表中添加所述新增的处理设备对应的节点,添加的节点的数据包括所述新增配置信息。

作为一种实施方式,所述生成模块,还用于在检测到所述可调度的处理设备出现故障的情况下,确定出现故障的处理设备对应的所述环状链表中的节点,作为故障节点;在所述环状链表中删除所述故障节点。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

本发明实施例还提供电子设备,如图6所示,包括存储器602、处理器601及存储在存储器602上并可在处理器601上运行的计算机程序,处理器601执行所述程序时实现如上述任意一种调度方法。

处理器601可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器602可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器602可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器602中,并由处理器601来调用执行。

需要说明的是,尽管上述设备仅示出了处理器601、存储器602,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任意一种调度方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。

本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

相关技术
  • 调度设备、被调度设备、资源调度方法及装置
  • 接入节点设备和接入系统及设备调度方法和设备调度装置
技术分类

06120113079052