本发明属于软件,具体而言属于一种多节点环境下的任务动态分配方法及装置。
背景技术:
1、在现代软件开发中,随着容器化技术的流行和成熟,越来越多的服务选择以容器化多节点部署。多节点部署服务的优势是提高可用性和性能,但是如果任务设计不周全,在性能上会适得其反。
2、在现有的众多方案中,对于任务型服务,普遍是通过选举选出某一个节点,执行所有任务,这会导致该节点资源占用极高。
3、有鉴于此,特提出本发明。
技术实现思路
1、有鉴于此,本发明公开了一种多节点环境下的任务动态分配方法及装置,该方法以中心程序作为任务分发器,节点作为任务执行者,两者能动态的、均衡的执行任务,避免出现某个节点任务过多,某个节点任务太少的情况,通过任务权重划分,更合理、均衡的分配任务。
2、具体的,本发明是通过以下技术方案实现的:
3、第一方面,本发明公开了一种多节点环境下的任务动态分配方法,包括如下步骤:
4、s1、建立具有任务权重划分的任务请求并对多个节点批量部署所述任务请求;
5、s2、运行中心程序,建立所述中心程序与节点响应连接并维持请求响应;
6、s3、所述中心程序根据节点请求响应情况进行任务分配;
7、若第一个与所述中心程序连接的第一节点连续3次请求响应后没有其他节点连接所述中心程序,则所述中心程序将全部任务分配给第一节点;
8、若所述第一节点与所述中心程序在3次请求响应内出现其他节点连接所述中心程序,则根据最后一个节点与所述中心程序连续3次请求响应后根据任务权重对请求响应的所有节点进行任务分配。
9、具体地,s2步骤中,中心程序与节点之间响应连接的方式可以通过中心程序开启http服务,接收节点发送的任务请求。
10、s3步骤中,节点收到中心程序返回的被允许的任务列表,为确保中心程序不会快速改变任务列表影响任务稳定性,先将任务存储起来,3秒后再次向中心程序再次发送任务请求,只有当3次请求响应返回的被允许执行的任务列表完全相同时,才能认为任务分配稳定,进而执行被分配任务,这样设置的好处是,能够设置任务开启缓冲期,避免频繁开启或关闭任务影响稳定性。
11、进一步地,所述s3步骤中,所述节点获得任务权重的计算公式为:
12、节点任务权重<任务总权重/节点数;
13、其中,任务总权重/节点数的结果若为小数则进一位取整数。
14、优选的,当某一个任务权重过高,中心程序将此任务分配到一个节点上单独执行。
15、进一步地,所述中心程序在与所述第一节点连接后,记录所述第一节点的所述任务请求和节点信息到任务列表。
16、进一步地,所述其他节点请求响应所述中心程序的过程中,所述中心程序接收该节点的任务请求并与所述任务列表内的任务请求进行对比,判断是否一致。
17、进一步地,所述节点获取任务后,在执行任务前,先将该节点正在运行的所有任务关闭,然后按照被允许的任务列表依次开启相应任务。
18、进一步地,在任务执行过程中,若存在任何一个节点超时未响应的情况,则暂停所有节点任务,并根据任务分配原则重新分配任务。
19、进一步地,若所述中心程序出现异常情况,则每个节点均维持当前状态。
20、第二方面,本发明公开了一种多节点环境下的任务动态分配装置,包括:
21、任务建立与部署模块:建立具有任务权重划分的任务请求并对多个节点批量部署所述任务请求;
22、响应连接模块:运行中心程序,建立所述中心程序与节点响应连接并维持请求响应;
23、任务分配模块:所述中心程序根据节点请求响应情况进行任务分配;
24、若第一个与所述中心程序连接的第一节点连续3次请求响应后没有其他节点连接所述中心程序,则所述中心程序将全部任务分配给第一节点;
25、若所述第一节点与所述中心程序在3次请求响应内出现其他节点连接所述中心程序,则根据最后一个节点与所述中心程序连续3次请求响应后根据任务权重对请求响应的所有节点进行任务分配。
26、第三方面,本发明公开了一种计算机可读存储介质,其上存储有计算机程序所述程序被处理器执行时实现如第一方面所述多节点环境下的任务动态分配方法的步骤。
27、第四方面,本发明公开了一种计算机设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述多节点环境下的任务动态分配方法的步骤。
28、与现有技术相比,本发明的有益效果在于:
29、本发明提出的多节点环境下的任务动态分配方法及装置,该方法是一个通用方法,可以适配到任何多节点环境的任务分配场景,支持多节点多任务模式,可配置任务权重,更合理、均衡地分配任务,同时设置任务开启缓冲期,避免频繁开启关闭影响稳定性,支持多节点动态扩展,节点的增减不影响任务执行。
1.一种多节点环境下的任务动态分配方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的任务动态分配方法,其特征在于,所述s3步骤中,所述节点获得任务权重的计算公式为:
3.根据权利要求1所述的任务动态分配方法,其特征在于,所述中心程序在与所述第一节点连接后,记录所述第一节点的所述任务请求和节点信息到任务列表。
4.根据权利要求3所述的任务动态分配方法,其特征在于,所述其他节点请求响应所述中心程序的过程中,所述中心程序接收该节点的任务请求并与所述任务列表内的任务请求进行对比,判断是否一致。
5.根据权利要求1所述的任务动态分配方法,其特征在于,所述节点获取任务后,在执行任务前,先将该节点正在运行的所有任务关闭,然后按照被允许的任务列表依次开启相应任务。
6.根据权利要求1所述的任务动态分配方法,其特征在于,在任务执行过程中,若存在任何一个节点超时未响应的情况,则暂停所有节点任务,并根据任务分配原则重新分配任务。
7.根据权利要求1所述的任务动态分配方法,其特征在于,若所述中心程序出现异常情况,则每个节点均维持当前状态。
8.一种多节点环境下的任务动态分配装置,使用如权利要求1-7任一项所述的方法,其特征在于,包括:
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序执行时实现权利要求1-7任一项所述多节点环境下的任务动态分配方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述多节点环境下的任务动态分配方法的步骤。