CN112256437A - 一种任务分发方法及装置 - Google Patents
一种任务分发方法及装置 Download PDFInfo
- Publication number
- CN112256437A CN112256437A CN202011247793.9A CN202011247793A CN112256437A CN 112256437 A CN112256437 A CN 112256437A CN 202011247793 A CN202011247793 A CN 202011247793A CN 112256437 A CN112256437 A CN 112256437A
- Authority
- CN
- China
- Prior art keywords
- node
- task
- processed
- executing
- nodes
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000009826 distribution Methods 0.000 title claims abstract description 18
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000007717 exclusion Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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 load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种任务分发方法及和装置,其中,所述的方法包括:当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。从而每个执行节点都可以接收任务并分配任务,消除采用中央控制节点来集中式控制的固有稳定性隐患,各个子节点之间地位平等,互为冗余备份,当一个子节点失效之后,可以使用任意其他节点代替。
Description
技术领域
本发明涉及任务管理技术领域,特别是涉及一种任务分发方法,以及一种任务分发装置。
背景技术
现代企业级的CI/CD工作一般为了达到比如敏捷开发、快速迭代、甚至是为客户提供服务的目的,需要将各种各样的任务组织在一起执行。这些任务根据其具体类型或并行或串行执行,而为了有序的组织这些任务,往往需要一个任务分发系统将任务分发到对应的执行机上执行,任务分发系统的目的在于找到可以被使用的执行机,并将任务送到执行机上进行执行。
现有技术中,一个典型的任务分发系统由一个中央控制节点和多个执行节点组成,中央控制节点负责处理用户的待处理任务,并将实际任务分发到各个执行节点上进行执行,执行节点将执行过程与结果发送回至中央控制节点。中央节点在分发任务后,只负责维护与执行节点的通信,而执行节点在执行任务时实时的返回任务执行情况,或在任务执行完毕后统一发送回结果。而中央控制节点则会根据任务的执行情况,或主动或被动的将各个任务的执行情况告诉用户。
然而,在上述场景中,对中央控制节点稳定性要求较高,一旦该节点宕机将导致所有的执行节点无法执行任务,或失去对所有节点的监控状态。为了保持中央控制节点的稳定性,往往会通过扩充中央控制节点的数量达到冗余备份的目的,但是一旦引入多机控制就等效引入了多机竞主(多个互为冗余的中央控制节点竞争谁是生效激活的实际中央控制节点)的固有缺陷,在多机竞主的过程中,某个或某些节点一时不知道被谁控制,或者同时被多个“伪”主机控制,容易造成执行节点潜在的调度紊乱。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种任务分发方法和相应的一种任务分发装置。
第一方面,本发明实施例公开了一种任务分发方法,所述方法包括:
当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
可选地,所述确定用于执行所述待处理任务的目标节点,包括:
获取与所述当前节点连接的所有节点的负载数据;
根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点。
可选地,所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点,包括:
当包含多个所述可执行的节点时,根据所述负载数据对多个所述可执行的节点进行排序,得到排序结果;
根据所述排序结果,从多个所述可执行的节点中确定用于执行所述待处理任务的目标节点。
可选地,所述与所述当前节点连接的所有节点包括:与所述当前节点处于同一局域网中的节点,和/或,与所述当前节点在OSI模型的网络层可达的非同一局域网中的节点。
可选地,在所述获取与所述当前节点连接的所有节点的负载数据的步骤之前,还包括:
确定向所述当前节点发送通告消息的节点为与所述当前节点连接的节点。
可选地,所述获取与所述当前节点连接的所有节点的负载数据,包括:
所述当前节点依次向与所述当前节点连接的各个节点发送指派请求;
接收所述各个节点返回的负载数据。
可选地,在所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点的步骤之后,还包括:
针对所述各个节点生成指派消息,并将所述指派消息返回至所述各个节点。
第二方面,本发明实施例还公开了一种任务分发装置,所述装置包括:
目标节点确定模块,用于当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
任务执行模块,用于若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
第三方面,本发明实施例还公开了一种电子设备,包括:
处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。
第四方面,本发明实施例还公开了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,通过当前节点接收待处理任务,并确定用于执行待处理任务的目标节点,若目标节点为所述当前节点,则在当前节点执行待处理任务,若目标节点不为当前节点,则将待处理任务发送至目标节点,以在目标节点上执行待处理任务,从而每个执行节点都可以接收任务并分配任务,消除采用中央控制节点来集中式控制的固有稳定性隐患,各个子节点之间地位平等,互为冗余备份,当一个子节点失效之后,可以使用任意其他节点代替。整个节点网络,对用户而言,完全对称,不分主次、父子结构,进而使整个CI/CD更为便宜和弹性。
附图说明
图1是本发明的一种任务分发方法实施例的步骤流程图;
图2A是本发明的一种任务经过一次反射的示意图;
图2B是本发明的一种执行节点的结构示意图;
图3是本发明的一种执行节点分布在两个局域网内的示意图;
图4是本发明的一种决策过程的示意图;
图5是本发明的一种决策结果的示意图;
图6是本发明的一种执行节点间发送Bgp通告的示意图;
图7是本发明的一种执行节点轮询决策的示意图;
图8是本发明的一种多任务分发的示意图;
图9是本发明的一种任务分发装置实施例的结构框图;
图10是本发明的一种电子设备的结构框图;
图11是本发明的一种存储介质的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了避免需要通过中央控制节点集中接收任务并分配这些任务,在本发明实施例中,可以改变执行节点的结构,每个执行节点可以由server服务器和client客户机构成,其中,server负责接收传递过来的一个或多个任务,并决策直接执行这些任务还是经由client重新跳转出去执行;client可以执行server分配的任务,或将任务通过通信反射到其他的执行节点。这种一个执行节点上兼具server和client的特点构成了后续大规模反射执行网络的基石,从而可以采用去中心化的结构设计,消除采用中央控制节点来集中式控制的固有稳定性隐患,各个子节点之间地位平等,互为冗余备份,当一个子节点失效之后,可以使用任意其他节点代替。整个节点网络,对用户而言,完全对称,不分主次、父子结构,进而使整个CI/CD更为便宜和弹性。
参照图1,示出了本发明的一种任务分发方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
待处理任务可以是未经处理的任务,待处理任务可以依据用户的请求生成。具体的,在用户请求访问数据库中的数据时,则可以根据用户的访问请求生成访问数据任务,将该访问数据任务作为待处理任务发送至执行节点。
当前节点可以指当前接收到待处理任务的执行节点,当前节点中可以由server和client构成,通过server接收待处理任务。在接收到待处理任务之后,并不是立即执行该待处理任务,而是经过决策后决定在哪个执行节点上执行该待处理任务,即确定用于执行待处理任务的目标节点。
具体的,可以获取集群中的所有执行节点的当前状态,该当前状态可以包括可用状态和不可用状态,例如,可以通过查询执行节点的任务数量,来确定执行节点是否处于可用状态,在获取到集群中的所有执行节点的当前状态之后,可以依据所有执行节点的当前状态确定处于可用状态的执行节点为目标节点。作为一种示例,假设目前有3个执行节点,当前节点为节点1,若节点1的当前状态为可用状态,节点2的当前状态为不可用状态,节点3的当前状态为不可用状态,则可以确定当前节点为目标节点;若节点1的当前状态为不可用状态,节点2的当前状态为不可用状态,节点3的当前状态为可用状态,则可以确定节点3为目标节点。
步骤102,若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
在确定用于执行待处理任务的目标节点之后,可以进一步判断目标节点是否为当前节点,若目标节点为当前节点,则可以在当前节点执行待处理任务,以得到执行结果。
若目标节点不为当前节点,则可以将待处理任务发送至目标节点,以在目标节点上执行待处理任务。具体的,在同一个局域网内,所有局域网内的执行机可以直接通信,无需路由转发,其中,局域网不特指具有相同掩码的IP(Internet Protocol,网际互联协议)网段,可以认为是一群规模较小的执行机群,当目标节点不为当前节点时,可以直接通过通信反射将待处理任务发送至目标节点。
作为一种示例,如图2A所示,存在4个执行节点,当前节点在接收到待处理任务之后,需要经过一次反射到其他的节点上执行,其他的节点在接收到待处理任务之后,还可以继续将待处理任务反射到其他的节点。如图2B所示,存在4个执行节点,每一个执行节点都包含server和client,server负责接收传递过来的待处理任务,并且决定是本地直接执行还是经由client重新跳转出去由其的节点执行。
在一个跨局域网的网络上,待处理任务可以通过OSI模型第三层的网络层转发从一个局域网孤岛到达另一个局域网孤岛,如图3所示,执行节点1~4处于同一个局域网内,执行节点a~d处于同一个局域网内,而两个局域网的第三层的网络层路由可达。当一个待处理任务从上一个局域网传递过来后到达执行节点a,执行节点a只知道这个待处理任务并非来自自己的局域网内,站在它的角度上看这个待处理任务至少经历了二次反射。站在执行节点1的角度上看,同理,它主动将待处理任务抛至了执行节点a上,它不知道这个待处理任务是否会被执行节点a抛至别处(也无需知道),所以一个二次反射任务的二次传递性对相关联的两个前后节点是完全可见的。在本发明实施例中,可以将如图3所示的这种任务传递结构叫做二次反射结构。
当执行节点收到待处理任务之后,可以决策该待处理任务在那里执行,如图4所示,决策结果有4种,1.自身就是一个具备执行条件的可用节点(即对应为图4决策结果中的本地执行);2.当前节点所在的局域网内存在具备执行条件的可用节点(即对应为图4决策结果中的一次反射);3.当前节点所在的局域网内无可用节点,但是相邻的局域网内(称为三层邻居)有可用节点,则需要二次反射,由反射到的下一个节点自己在其局域网内决策(即对应为图4决策结果中的二次反射);4.无可用节点,且无下一个三层邻居,则不执行,结束流程。
如图5所示,假设只有一个可用的节点时的特例,如果当前节点所在的局域网邻居2为可用节点,则确定局域网邻居2为目标节点,如果当前节点为可用节点,则确定当前节点为目标节点,如果当前节点所在的局域网内无可用节点,则查询三层邻居表,如有可用的三层邻居,则转发待处理任务至三层邻居网段内(即上文所述二次反射)。其中,三层邻居表的生成方法如下:通过BGP(Border Gateway Protocol,边界网关协议)来确定节点是否为当前节点的三层,若是当前节点能够获得节点发送的通告消息,则认为该节点为当前节点的三层邻居,并维护对应的三层邻居表。此外,还可以通过其他的方式发现当前节点的三层邻居,本发明实施例对此并不限制。
在本发明的一种优选实施例中,所述确定用于执行所述待处理任务的目标节点,包括:
获取与所述当前节点连接的所有节点的负载数据;根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点。
负载数据可以指用于描述执行节点的负载状况的数据,具体的,可以查询执行节点的任务数量作为负载数据。作为一种示例,可以通过遍历执行节点中的进程号,筛选与执行节点中的server有父子进程关系的进程号,通过这些进程号的数量得到执行节点的任务数量,此外,还可以通过其他的方式确定执行节点的任务数量,本发明实施例对此并不限制。
在本发明实施例中,可以通过获取与当前节点连接的所有节点的负载数据,其中,与当前节点连接的所有节点可以包括:与当前节点处于同一局域网中的节点,和/或,与当前节点在OSI模型的网络层可达的非同一局域网中的节点。OSI模型(Open SystemInterconnection Reference Model,开放式系统互联通信参考模型)将计算机网络体系结构划分为7层,网络层为OSI模型的第三层,与当前节点在OSI模型的网络层可达的非同一局域网中的节点可以称为当前节点的三层邻居。在获取到与当前节点连接的所有节点的负载数据之后,可以根据该负载数据,从所有节点中确定可执行的节点为用于执行待处理任务的目标节点。
在本发明的一种优选实施例中,所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点,包括:
当包含多个所述可执行的节点时,根据所述负载数据对所述多个所述可执行的节点进行排序,得到排序结果;根据所述排序结果,从所述多个所述可执行的节点中确定用于执行所述待处理任务的目标节点。
具体的,当存在多个可执行的节点时,可以根据负载数据对多个可执行的节点进行排序得到排序结果,然后根据排序结果从多个可执行的节点中确定用于执行待处理任务的目标节点。作为一种示例,负载数据包含任务数量,则可以根据每个节点的任务数量对这些节点进行排序,选择任务数量最少的执行节点作为用于执行待处理任务的目标节点。作为另一种示例,负载数据包含内存利用率,则可以根据每个节点的内存利用率对这些节点进行排序,选择内存利用率最低的执行节点作为用于执行待处理任务的目标节点。此外,还可以根据实际需要设置负载数据为其他的参数,本发明实施例对此并不限制。
在本发明的一种优选实施例中,在所述获取与所述当前节点连接的所有节点的负载数据的步骤之前,还包括:
确定向所述当前节点发送通告消息的节点为与所述当前节点连接的节点。
在本发明实施例中,在获取与当前节点连接的所有节点的负载数据的步骤之前,还可以确定向当前节点发送通告消息的节点为与当前节点连接的节点。具体的,若是当前节点能够接收到其他节点的通过消息,则可以认为该节点与当前节点的在在OSI模型的网络层可达,可以确定该节点为当前节点连接的节点,以在决策时获取该节点的负载数据,来判断是否需要将待处理任务发送至该节点执行。
作为一种示例,如图6所示,有三个局域网,局域网之间的第三层的网络层可达,并通过Bgp通告告知彼此对方在哪。以执行节点X为例,执行节点X接收到来自执行节点Y和Z所在网络的通告消息,就可以得知执行节点Y、Z与执行节点X的邻居关系。各个执行节点在接收到通告消息可以维护一三层邻居表,记录各个节点的邻居。
在本发明的一种优选实施例中,所述获取与所述当前节点连接的所有节点的负载数据,包括:
所述当前节点依次向与所述当前节点连接的各个节点发送指派请求;接收所述各个节点返回的负载数据。
在本发明实施例中,多个任务可以以多队列并行的方式发送给多个执行节点,在收到待处理任务、决策任务分发情况、以及确认对方收到任务分发决策结果之间的时间,若是收到其他的待处理任务,则需要等到本次决策处理完之后再行响应。可以通过在传输层协议之上,重新构筑一个三次握手行为的串行特性即可保证当前节点的“自锁”特性,确保不会引发多任务同时写入的问题。
具体的,当前节点可以轮询所有的节点,以决策用于执行待处理任务的目标节。通过当前节点依次向与当前节点连接的各个节点发送指派请求,该指派请求可以指用于告知需要执行待处理任务的请求消息,例如,指派请求可以为:我可能要指派你。各个节点在接收到指派请求之后,可以告知当前节点实际情况,即向当前节点返回负载数据,从而,当前节点可以根据负载数据判断是否需要指派这个节点。
在本发明的一种优选实施例中,在所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点的步骤之后,还包括:
针对所述各个节点生成指派消息,并将所述指派消息返回至所述各个节点。
在本发明实施例中,当前节点在根据负载数据,从所有节点中确定可执行的节点为用于执行待处理任务的目标节点的步骤之后,可以针对各个节点生成指派消息,并将指派消息返回至各个节点。例如,针对目标节点则生成的指派消息为:我会指派你;针对非目标节点则生成的指派消息为:我不会指派你。
作为一种示例,如图7所示,a/b任务队列和x/y任务队列被分别提交至执行节点1和执行节点4,假设a与x任务存在互斥关系(即同一台机器不能同时运行a与x),那么执行节点1轮询局域网内网段机器的时候,不能轮询执行节点4,同理,执行节点4也不能轮询执行节点1。并且,如果执行节点1先轮询了执行节点2,那么执行节点4必须等执行节点2与执行节点1的指派彻底完结了,才能对执行节点2进行轮询。其中,指派彻底完结指的是执行节点2确定了执行节点1使用我,或者不使用我,而非处于暂时未知的中间状态。
而执行节点2是通过与执行节点1的三次握手来确定指派关系的:第一次,执行节点1告诉执行节点2,我可能要指派你;第二次,执行节点2告诉执行节点1,我的实际情况;第三次,执行节点1告诉执行节点2,我会使用你或者不会使用你。在这三次握手期间,如果执行节点4发来轮询请求,则执行节点2不能响应,直到三次握手完毕,则开始响应执行节点4的轮询,并与执行节点4建立三次握手关系。
在具体实现中,由于多队列中的任务如果出现互斥关系的,会降低响应速度,可以通过合理划分,将具有互斥关系的任务到不同的局域网内,以提高任务分发的响应速度。如图8所示,任务1,2...和任务a,b...具有互斥关系,则将任务1,2...和任务a,b...划分到不同的局域网内。
在本发明实施例中,通过当前节点接收待处理任务,并确定用于执行待处理任务的目标节点,若目标节点为所述当前节点,则在当前节点执行待处理任务,若目标节点不为当前节点,则将待处理任务发送至目标节点,以在目标节点上执行待处理任务,从而每个执行节点都可以接收任务并分配任务,消除采用中央控制节点来集中式控制的固有稳定性隐患,各个子节点之间地位平等,互为冗余备份,当一个子节点失效之后,可以使用任意其他节点代替。整个节点网络,对用户而言,完全对称,不分主次、父子结构,进而使整个CI/CD更为便宜和弹性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图9,示出了本发明的一种任务分发装置实施例的结构框图,具体可以包括如下模块:
目标节点确定模块901,用于当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
任务执行模块902,用于若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
在本发明的一种优选实施例中,所述目标节点确定模块901,包括:
负载数据获取子模块,用于获取与所述当前节点连接的所有节点的负载数据;
目标节点确定子模块,用于根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点。
在本发明的一种优选实施例中,所述目标节点确定子模块,包括:
排序单元,用于当包含多个所述可执行的节点时,根据所述负载数据对多个所述可执行的节点进行排序,得到排序结果;
目标节点确定单元,用于根据所述排序结果,从多个所述可执行的节点中确定用于执行所述待处理任务的目标节点。
在本发明的一种优选实施例中,所述与所述当前节点连接的所有节点包括:与所述当前节点处于同一局域网中的节点,和/或,与所述当前节点在OSI模型的网络层可达的非同一局域网中的节点。
在本发明的一种优选实施例中,所述装置还包括:
节点确定模块,用于确定向所述当前节点发送通告消息的节点为与所述当前节点连接的节点。
在本发明的一种优选实施例中,所述负载数据获取子模块,包括:
指派请求发送单元,用于所述当前节点依次向与所述当前节点连接的各个节点发送指派请求;
负载数据接收单元,用于接收所述各个节点返回的负载数据。
在本发明的一种优选实施例中,所述负载数据获取子模块,还包括:
指派消息返回单元,用于针对所述各个节点生成指派消息,并将所述指派消息返回至所述各个节点。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
如图10所示,本发明实施例还提供了一种电子设备,包括:
处理器1001、存储介质1002和总线1003,所述存储介质1002存储有所述处理器1001可执行的机器可读指令,当电子设备运行时,所述处理器1001与所述存储介质1002之间通过总线1003通信,所述处理器1001执行所述机器可读指令,以执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。
如图11所示,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序1101,所述计算机程序1101被处理器运行时执行如本发明实施例任一项所述的方法。具体实现方式和技术效果类似,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种任务分发方法和一种任务分发装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种任务分发方法,其特征在于,所述方法包括:
当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
2.根据权利要求1所述的方法,其特征在于,所述确定用于执行所述待处理任务的目标节点,包括:
获取与所述当前节点连接的所有节点的负载数据;
根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点,包括:
当包含多个所述可执行的节点时,根据所述负载数据对多个所述可执行的节点进行排序,得到排序结果;
根据所述排序结果,从多个所述可执行的节点中确定用于执行所述待处理任务的目标节点。
4.根据权利要求3所述的方法,其特征在于,所述与所述当前节点连接的所有节点包括:与所述当前节点处于同一局域网中的节点,和/或,与所述当前节点在OSI模型的网络层可达的非同一局域网中的节点。
5.根据权利要求2或3或4所述的方法,其特征在于,在所述获取与所述当前节点连接的所有节点的负载数据的步骤之前,还包括:
确定向所述当前节点发送通告消息的节点为与所述当前节点连接的节点。
6.根据权利要求2所述的方法,其特征在于,所述获取与所述当前节点连接的所有节点的负载数据,包括:
所述当前节点依次向与所述当前节点连接的各个节点发送指派请求;
接收所述各个节点返回的负载数据。
7.根据权利要求6所述的方法,其特征在于,在所述根据所述负载数据,从所有节点中确定可执行的节点为用于执行所述待处理任务的目标节点的步骤之后,还包括:
针对所述各个节点生成指派消息,并将所述指派消息返回至所述各个节点。
8.一种任务分发装置,其特征在于,所述装置包括:
目标节点确定模块,用于当前节点接收待处理任务,并确定用于执行所述待处理任务的目标节点;
任务执行模块,用于若所述目标节点为所述当前节点,则在所述当前节点执行所述待处理任务;若所述目标节点不为所述当前节点,则将所述待处理任务发送至所述目标节点,以在所述目标节点上执行所述待处理任务。
9.一种电子设备,其特征在于,包括:
处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-7任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011247793.9A CN112256437B (zh) | 2020-11-10 | 一种任务分发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011247793.9A CN112256437B (zh) | 2020-11-10 | 一种任务分发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256437A true CN112256437A (zh) | 2021-01-22 |
CN112256437B CN112256437B (zh) | 2024-10-18 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539649A (zh) * | 2024-01-10 | 2024-02-09 | 广州宇中网络科技有限公司 | 分布式集群的标识管理方法、设备和可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103369601A (zh) * | 2013-07-15 | 2013-10-23 | 厦门卓讯信息技术有限公司 | 为手机客户端提供大并发处理及流量控制的方法 |
US20160094661A1 (en) * | 2014-09-30 | 2016-03-31 | Nicira, Inc. | Sticky Service Sessions in a Datacenter |
CN108205561A (zh) * | 2016-12-19 | 2018-06-26 | 北京国双科技有限公司 | 数据查询系统、方法及装置 |
CN108304250A (zh) * | 2018-03-05 | 2018-07-20 | 北京百度网讯科技有限公司 | 用于确定运行机器学习任务的节点的方法和装置 |
CN108446177A (zh) * | 2018-02-07 | 2018-08-24 | 平安普惠企业管理有限公司 | 一种任务处理方法、计算机可读存储介质及终端设备 |
CN109298948A (zh) * | 2018-10-31 | 2019-02-01 | 北京国信宏数科技有限责任公司 | 分布式计算方法和系统 |
CN110661844A (zh) * | 2019-08-16 | 2020-01-07 | 北京旷视科技有限公司 | 自动发布调度系统、方法和存储介质 |
CN110912972A (zh) * | 2019-11-07 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种业务处理方法、系统、电子设备及可读存储介质 |
CN110955523A (zh) * | 2019-11-22 | 2020-04-03 | 中国银联股份有限公司 | 一种业务处理方法及装置 |
CN111736965A (zh) * | 2019-12-11 | 2020-10-02 | 西安宇视信息科技有限公司 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103369601A (zh) * | 2013-07-15 | 2013-10-23 | 厦门卓讯信息技术有限公司 | 为手机客户端提供大并发处理及流量控制的方法 |
US20160094661A1 (en) * | 2014-09-30 | 2016-03-31 | Nicira, Inc. | Sticky Service Sessions in a Datacenter |
CN108205561A (zh) * | 2016-12-19 | 2018-06-26 | 北京国双科技有限公司 | 数据查询系统、方法及装置 |
CN108446177A (zh) * | 2018-02-07 | 2018-08-24 | 平安普惠企业管理有限公司 | 一种任务处理方法、计算机可读存储介质及终端设备 |
CN108304250A (zh) * | 2018-03-05 | 2018-07-20 | 北京百度网讯科技有限公司 | 用于确定运行机器学习任务的节点的方法和装置 |
CN109298948A (zh) * | 2018-10-31 | 2019-02-01 | 北京国信宏数科技有限责任公司 | 分布式计算方法和系统 |
CN110661844A (zh) * | 2019-08-16 | 2020-01-07 | 北京旷视科技有限公司 | 自动发布调度系统、方法和存储介质 |
CN110912972A (zh) * | 2019-11-07 | 2020-03-24 | 北京浪潮数据技术有限公司 | 一种业务处理方法、系统、电子设备及可读存储介质 |
CN110955523A (zh) * | 2019-11-22 | 2020-04-03 | 中国银联股份有限公司 | 一种业务处理方法及装置 |
CN111736965A (zh) * | 2019-12-11 | 2020-10-02 | 西安宇视信息科技有限公司 | 任务调度方法、装置、调度服务器和机器可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117539649A (zh) * | 2024-01-10 | 2024-02-09 | 广州宇中网络科技有限公司 | 分布式集群的标识管理方法、设备和可读存储介质 |
CN117539649B (zh) * | 2024-01-10 | 2024-07-16 | 广州宇中网络科技有限公司 | 分布式集群的标识管理方法、设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10111208B2 (en) | System and method for performing security management operations in network having non-static collection of nodes | |
US8200789B2 (en) | Method, system and program product for automated topology formation in dynamic distributed environments | |
Houidi et al. | A distributed virtual network mapping algorithm | |
US7519734B1 (en) | System and method for routing service requests | |
EP2710470B1 (en) | Extensible centralized dynamic resource distribution in a clustered data grid | |
US8166097B2 (en) | Using distributed queues in an overlay network | |
CN108881512B (zh) | Ctdb的虚拟ip均衡分配方法、装置、设备及介质 | |
EP3596600B1 (en) | Systems and methods for compute node management protocols | |
CN111324435A (zh) | 分布式任务调度及注册方法、设备和分布式任务调度系统 | |
US20230283527A1 (en) | Method for scheduling mobile edge computing-oriented distributed dedicated protection services | |
CN109995842B (zh) | 一种用于分布式服务器集群的分组方法及装置 | |
JP5599943B2 (ja) | サーバクラスター | |
CN117149445B (zh) | 一种跨集群负载均衡方法及装置、设备及存储介质 | |
CN113055461B (zh) | 一种基于ZooKeeper的无人集群分布式协同指挥控制方法 | |
Drost et al. | Simple locality-aware co-allocation in peer-to-peer supercomputing | |
CN109831507A (zh) | 物联网系统、负载均衡方法和存储介质 | |
US20110131288A1 (en) | Load-Balancing In Replication Engine of Directory Server | |
KR102119456B1 (ko) | 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법 | |
CN112256437B (zh) | 一种任务分发方法及装置 | |
CN112256437A (zh) | 一种任务分发方法及装置 | |
CN112346853A (zh) | 用于分布应用的方法和设备 | |
van Renesse et al. | Autonomic computing: A system-wide perspective | |
Tuncer et al. | A hybrid management substrate structure for adaptive network resource management | |
CN118118488B (zh) | 基于云边协同的云数据服务动态自适应调整方法与系统 | |
CN114143373B (zh) | 基于bpmn规范的能力编排引擎优化系统及方法 |
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 |