一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种系统数据资源的动态调度方法、装置及电子设备与流程

2022-02-22 04:27:44 来源:中国专利 TAG:


1.本技术涉及信息数据传输技术领域,具体而言,涉及一种系统数据资源的动态调度方法、装置及电子设备。


背景技术:

2.终端应用的后台由于需要处理大量的数据信息,后台服务器本身往往需要多台机器相互组合搭配来提升后台的整体性能,以此满足终端应用用户的日常使用需要。但多台机器并存的同时也将带来诸如集群节点极多导致的节点异常频发、服务集群中各节点服务能力不均而导致数据处理效率低等一系列的问题。
3.目前,针对上述问题,现有的资源调度方法一般关注的是系统数据资源本身,即服务器集群中各个数据处理节点的网络带宽、处理资源cpu占用、内存等,并分别为这些指标参数设置阈值,将待分配的请求数据优先传输至指标参数未达到阈值的数据处理节点,以此缓解系统数据资源的使用压力,减少故障发生的概率。然而,在实际业务数据处理过程中,在链路状态波动、节点已经发生异常、调度频率变化等多方面的影响下,即使指标参数不发生变化,同一数据处理节点的实际数据处理能力也不相同,导致现有的根据预先设置的阈值来调度分配节点的方式依旧会选择到故障资源节点或处理速率较慢的资源节点,资源调度的效率较差。


技术实现要素:

4.为了解决上述问题,本技术实施例提供了一种系统数据资源的动态调度方法、装置及电子设备。
5.第一方面,本技术实施例提供了一种系统数据资源的动态调度方法,所述方法包括:基于分布式调度框架构建服务集群,所述服务集群包括至少两个请求处理节点;在滑动窗口中统计第一预设时长内接收到的所有请求数据,基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,并根据各所述唯一调用字符串将所有所述请求数据分成多个请求数据组,所述请求数据组中各所述请求数据的唯一调用字符串相同,所述请求数据信息包括协议信息、ip地址信息、端口信息;轮流在各所述请求数据组中逐个选取目标请求数据,并基于各所述目标请求数据的选取顺序构建请求数据顺序表后,基于随机数量按顺序分割所述请求数据顺序表,得到多个数据发送组,用以使所述数据发送组中任意相邻的两个所述目标请求数据对应的唯一调用字符串均不相同;为各所述请求处理节点依次分配各所述数据发送组,并接收各所述请求处理节点反馈的请求处理结果,基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;
再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
6.优选的,所述基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,包括:获取各所述请求数据对应的各请求数据信息,根据预设组合顺序组合所述请求数据信息中的各信息参数,得到唯一调用字符串。
7.优选的,所述轮流在各所述请求数据组中逐个选取目标请求数据,包括:根据各所述请求数据在所述第一预设时长内的预约时间先后,分别为每个所述请求数据组中的各目标请求数据设置优先级;轮流在各所述请求数据组中逐个选取当前优先级最高的所述目标请求数据。
8.优选的,所述基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间,包括:基于所述请求数据组对各所述请求处理结果分类,得到各请求处理结果组,用以使所述请求处理结果组中各目标请求处理结果对应的请求数据组相同,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;分别对所述请求处理结果组中的各所述目标请求处理结果进行拟合,得到各节点处理时长曲线,所述节点处理时长曲线用以表征同一请求数据组中节点并发度、线程拥塞程度与线程处理时间的映射关系。
9.优选的,所述方法还包括:当经过所述预估处理时长后未接收到所述待分配请求数据对应的所述请求处理结果时,中止所述待分配请求数据对应的线程。
10.优选的,所述请求处理结果还包括错误信息、超时信息;所述方法还包括:根据同一所述请求处理节点反馈的各所述请求处理结果计算所述请求处理节点的错误率以及超时率;对所述错误率与超时率进行加权计算,根据加权计算结果对应的数值范围确定所述请求处理节点的健康状态等级;所述根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点,包括:根据各所述节点处理时长曲线计算健康状态等级最高的各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
11.优选的,所述再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点,包括:再次统计所述第一预设时长内接收到的所有待分配请求数据时,确定预约时间最
早且还未被分配的所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点;更新所述请求处理节点的当前节点并发度和当前线程拥塞程度,重复所述确定预约时间最早且还未被分配的所述待分配请求数据对应的所述请求数据组的步骤,直至所有所述待分配请求数据均被分配;接收各所述请求处理节点反馈的所述请求处理结果,基于所述请求处理结果更新各所述节点处理时长曲线。
12.第二方面,本技术实施例提供了一种系统数据资源的动态调度装置,所述装置包括:构建模块,用于基于分布式调度框架构建服务集群,所述服务集群包括至少两个请求处理节点;统计模块,用于在滑动窗口中统计第一预设时长内接收到的所有请求数据,基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,并根据各所述唯一调用字符串将所有所述请求数据分成多个请求数据组,所述请求数据组中各所述请求数据的唯一调用字符串相同,所述请求数据信息包括协议信息、ip地址信息、端口信息;选取模块,用于轮流在各所述请求数据组中逐个选取目标请求数据,并基于各所述目标请求数据的选取顺序构建请求数据顺序表后,基于随机数量按顺序分割所述请求数据顺序表,得到多个数据发送组,用以使所述数据发送组中任意相邻的两个所述目标请求数据对应的唯一调用字符串均不相同;分配模块,用于为各所述请求处理节点依次分配各所述数据发送组,并接收各所述请求处理节点反馈的请求处理结果,基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;处理模块,用于再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
13.第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法的步骤。
14.第四方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面的任意一种可能的实现方式提供的方法。
15.本发明的有益效果为:1.不依据系统数据资源本身,而通过节点反馈的请求处理结果所构建的节点处理时长曲线来计算各节点的预估处理时长,保证计算出的预估处理时长能够准确体现出节点在链路波动、节点异常等多方面影响下的实际处理性能,进而减少异常节点长期被调用导致集群雪崩的问题,提高了资源调度的效率,保证全局资源调度的最优解。
16.2.能够对每条请求数据传输至请求处理节点后需要等待的处理时长进行较为准
确的预估,以此根据预估处理时长来主动判断请求数据的超时情况,进而自主决定是否需要中止进程,提升线程的利用率,能在单位时间内增加执行线程的总数,以此进一步提高了资源调度的效率。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本技术实施例提供的一种系统数据资源的动态调度方法的流程示意图;图2为本技术实施例提供的一种系统数据资源的动态调度装置的结构示意图;图3为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
20.在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本技术的多个实施例,不同实施例之间可以替换或者合并组合,因此本技术也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征a、b、c,另一个实施例包含特征b、d,那么本技术也应视为包括含有a、b、c、d的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
21.下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本技术内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
22.参见图1,图1是本技术实施例提供的一种系统数据资源的动态调度方法的流程示意图。在本技术实施例中,所述方法包括:s101、基于分布式调度框架构建服务集群,所述服务集群包括至少两个请求处理节点。
23.本技术的执行主体可以是云端服务器。
24.在本技术实施例中,云端服务器用来接收各个用户端发送来的请求数据,并将各个请求数据分配至具体的某一个服务器节点,即请求处理节点进行处理。为此,首先需要构建服务集群,云端服务器将通过分布式调度框架dubbo来构建服务集群。
25.具体的,dubbo主要由四个部分组成:寄存器register、执行器invoker(即服务消费者service consumer) 、导出器exporter(即服务提供者service provider)、监视器monitor。其中,exporter启动时向register注册所提供的服务。invoker启动时向register订阅服务的地址列表。invoker调用一个服务地址进行单一的长连接,失败重试另一个地址。运行过程中register对exporter进行实时的心跳机制监控,如果exporter不能提供服
务,更新服务列表,并向invoker进行推送,以便于invoker及时更改服务地址。monitor定时的采集服务调用次数、时间等相关信息。每一个invoker即可以认为是一个请求处理节点。
26.s102、在滑动窗口中统计第一预设时长内接收到的所有请求数据,基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,并根据各所述唯一调用字符串将所有所述请求数据分成多个请求数据组,所述请求数据组中各所述请求数据的唯一调用字符串相同,所述请求数据信息包括协议信息、ip地址信息、端口信息。
27.所述滑动窗口在本技术实施例中可以理解为在一个特定大小的字符串或数组上进行操作的窗口,用于网络数据传输时的流量控制,以避免拥塞的发生。
28.在本技术实施例中,为了避免频繁的数据传输交互造成服务集群的负荷过大,云端服务器会在滑动窗口内将各个用户端在第一预设时长(例如10s)里发送来的请求数据进行统计,每一个请求数据均对应有一个请求数据信息,其中包括有本次请求所需要的使用的协议、ip地址、端口等信息。云端服务器将会根据请求数据信息来生成唯一调用字符串,以此来对不同种类的请求数据进行分类,将相同种类,即唯一调用字符串相同的请求数据划分至一个请求数据组中。
29.在一种可实施方式中,所述基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,包括:获取各所述请求数据对应的各请求数据信息,根据预设组合顺序组合所述请求数据信息中的各信息参数,得到唯一调用字符串。
30.在本技术实施例中,对于不同种类的请求数据而言,其协议信息、ip地址信息、端口信息等一定不完全相同,故可以通过按照预设组合顺序对请求数据信息中的各个具体信息参数进行组合,例如“协议:地址:端口”,以此来生成唯一调用字符串。
31.s103、轮流在各所述请求数据组中逐个选取目标请求数据,并基于各所述目标请求数据的选取顺序构建请求数据顺序表后,基于随机数量按顺序分割所述请求数据顺序表,得到多个数据发送组,用以使所述数据发送组中任意相邻的两个所述目标请求数据对应的唯一调用字符串均不相同。
32.所述目标请求数据在本技术实施例中可以理解为在请求数据组中所选取的用以构建请求数据顺序表的请求数据。
33.在本技术实施例中,传统的资源调度方法会直接将滑动窗口统计的请求数据随机分配至各个请求处理节点,或者根据各个请求处理节点的cpu占用、剩余内存等请求处理节点自身的参数属性是否有达到对应设置的阈值来判断请求处理节点的当前处理能力。这样的调度方式一方面无法准确对受链路波动、节点异常等非自身参数属性影响下的节点实际处理能力进行准确判断,另一方面也无法预估出各个请求数据的处理时长,仅能够通过固定时长内节点是否有反馈处理结果来判断请求数据的处理是否超时,线程利用率低下。因此,本技术将通过后续拟合生成节点处理时长曲线的方式来对每一种请求数据在请求处理节点的当前处理能力下的处理时长进行预估。而由于服务集群中存在多个请求处理节点,根据各个请求处理节点的实际处理速度的不同,以及不同种类的请求数据被处理时需要花费的时间也不同,实际分配时请求数据可能会被分配至任何一个请求处理节点。这就需要每一个请求处理节点都能够对各个种类的请求数据进行预估,且预估出的处理时长符合该请求处理节点的工作状态。
34.具体的,云端服务器会将各请求数据分配至各个请求处理节点进行处理,以便根据各请求处理节点处理完请求数据所反馈回的反馈数据确定出各个请求处理节点在不同状态下对不同种类的请求数据的处理时长。为了让每一个请求处理节点均能够对各个种类的请求数据的处理时长进行预估,需要保证每个请求处理节点均分配有各个种类的请求数据。且由于同一请求处理节点在自身线程拥塞程度等参数的不同时,对同一种类的请求数据的处理时长也是非线性变化的,为了保证最终预估的准确性,还需要保证相同种类的请求数据不是连续分配至请求处理节点的。故云端服务器会在各个请求数据组中轮流选取目标请求数据,且每次只从请求数据组中选取一个目标请求数据,以此来按照选取顺序将各个目标请求数据构建为一个请求数据顺序表,这样使得请求数据顺序表中相同种类的请求数据之间存在一定的间隔,不会相邻。构建好请求数据顺序表后,将通过随机数量按照排列的顺序分割表格,得到多个数据发送组,再以数据发送组为单位向各个请求处理节点进行分配,以确保后续请求处理节点所反馈回的数据能够广泛覆盖节点在不同处理性能下对不同种类的请求数据的处理时长信息。
35.示例性的,假设请求数据组共有三组,分别为a组,b组,c组,且每一组中的目标请求数据分别为a1,a2,a3,a4,a5;b1,b2,b3,b4;c1,c2,c3,c4,c5。生成的请求数据顺序表的排序可以为a1,b1,c2,a3,b2,c1,a2,b3,c3,a4,b4,c4,a5,c5。再根据随机数量对表格进行拆分,假设随机数量分别为3,5,6,则得到的三个数据发送组分别为:a1,b1,c2;a3,b2,c1,a2,b3;c3,a4,b4,c4,a5,c5。
36.在一种可实施方式中,所述轮流在各所述请求数据组中逐个选取目标请求数据,包括:根据各所述请求数据在所述第一预设时长内的预约时间先后,分别为每个所述请求数据组中的各目标请求数据设置优先级;轮流在各所述请求数据组中逐个选取当前优先级最高的所述目标请求数据。
37.在本技术实施例中,由于将按照请求数据顺序表的排列顺序来进行节点分配,且每一组数据发送组中的目标请求数据也是按照排列顺序来依次被节点处理,因此在生成请求数据顺序表时,应该将更迫切需要被处理的请求数据排列至表格的前方。出于服务集群的负荷考虑,云端服务器是统计第一预设时长内的所有请求数据后,再将这些请求数据一并发送至各个节点进行处理的,也就是说,各个请求数据在第一预设时长内的预约时间是不同。故云端服务器将根据请求数据的预约时间先后,为预约时间更早的目标请求数据设置更高的优先级,并在进行目标请求数据的选取过程中,优先选取当前优先级最高的对象。
38.s104、为各所述请求处理节点依次分配各所述数据发送组,并接收各所述请求处理节点反馈的请求处理结果,基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间。
39.在本技术实施例中,确定了数据发送组后,云端服务器会为各个请求处理节点分配数据发送组,并将对应的数据发送组发送至对应的请求处理节点。请求处理节点在完成了对请求数据的处理后,其会向云端服务器反馈有请求处理结果,云端服务器根据请求处理结果便能够确定该请求数据传输至该请求处理节点时该请求处理节点的节点并发度和线程拥塞程度,以及在这样的节点并发度和线程拥塞程度下请求处理节点处理该请求数据
所花费的线程处理时间。根据各请求处理结果,云端服务器便能够通过对其中属于相同请求数据组的请求处理结果进行拟合,以此得到节点处理时长曲线,使得后续再次需要将这种请求数据分配至该请求处理节点时,能够直接基于节点处理时长曲线预估节点的处理时长。需要说明的是,本技术虽然也用到了节点并发度和线程拥塞程度这些请求处理节点自身的属性参数,但并不是直接基于这些属性参数来判断处理时长,而是通过请求处理结果确定在特定的属性参数下的实际处理时长,并以此构建节点并发度、线程拥塞程度与处理时长的映射关系,以映射关系构建出节点处理时长曲线。通过这样的方式,由于映射关系是根据实际节点所反馈回来的实际处理时长所构建的,其涵盖了链路波动、节点异常等非节点自身属性参数方面所带来的影响,以此保证了节点处理时长曲线能够准确的体现出节点的实际处理能力。
40.在一种可实施方式中,所述基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间,包括:基于所述请求数据组对各所述请求处理结果分类,得到各请求处理结果组,用以使所述请求处理结果组中各目标请求处理结果对应的请求数据组相同,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;分别对所述请求处理结果组中的各所述目标请求处理结果进行拟合,得到各节点处理时长曲线,所述节点处理时长曲线用以表征同一请求数据组中节点并发度、线程拥塞程度与线程处理时间的映射关系。
41.所述目标请求处理结果在本技术实施例中可以理解为请求处理结果组内的请求处理结果。
42.在本技术实施例中,不同种类的请求数据所对应的节点处理时长曲线是不同的,即云端服务器需要针对每一种类的请求数据来分别计算节点处理时长曲线,而不是根据全部的请求处理结果来拟合成一个曲线。故云端服务器首先会根据请求数据的种类,也就是请求数据组来对各个请求处理结果进行分类,以此得到各个请求处理结果组,并分别以请求处理结果组为单位进行目标请求处理结果的拟合。通过多个目标请求处理结果的计算,能够确定出节点并发度、线程拥塞程度与线程处理时间的二元公式映射关系,以此实现节点处理时长曲线的拟合。
43.s105、再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
44.所述待分配请求数据在本技术实施例中可以理解为云端服务器新接收到的需要进行节点分配处理的请求数据。
45.在本技术实施例中,云端服务器再次接收待分配请求数据时,便能够通过前述步骤生成的节点处理时长曲线来预估出待分配请求数据的处理时长。首先云端服务器需要确定该待分配请求数据所对应的请求数据组,以此来确定各个请求处理节点对应该请求数据组的节点处理时长曲线。通过每个请求处理节点所对应的节点处理时长曲线的计算,便能够确定出该待分配请求数据在分配至各个请求处理节点的预估处理时长,并选择预估处理
时长最短的请求处理节点来进行该待分配请求数据的处理。由于能够根据节点处理时长曲线直接计算出预估处理时长,即预估处理时长的长短本身除了能表征出了该请求处理节点的节点并发度、线程拥塞程度外,还能表征出链路波动、节点异常等其余因素导致节点实际处理速度缓慢等问题综合影响下的节点实际处理能力情况,保证了本技术的方式所得到的预估处理时长的准确性,进而保证了系统数据的资源调度效率。
46.在一种可实施方式中,所述方法还包括:当经过所述预估处理时长后未接收到所述待分配请求数据对应的所述请求处理结果时,中止所述待分配请求数据对应的线程。
47.在本技术实施例中,现有技术对于线程的管理方式为,统计预设时长内(例如1s)内的请求处理节点所反馈回来的反馈信息,根据这些反馈信息判断各个请求数据的处理情况,进而一次性调整线程。示例性的,云端服务器经过1s内共获得3个反馈信息表征请求处理结束,则其会在1s后将这3个反馈信息所对应的三个线程中止。可以看出,目前的方式中反馈信息无论是在0.2s还是0.8s时反馈回来,均需要在1s时才能够被处理,导致了线程的超时占用,且在接收到反馈信息之前,云端服务器是无法知道反馈信息会在何时到来,所以在1s的统计时长结束前,其也无法提前预知反馈信息的到来和及时中止已经被处理完毕的线程。而本技术由于能够根据节点处理时长曲线计算出预估处理时长,即云端服务器能够确定在经过预估处理时长后,应该接收到请求处理结果。若云端服务器在预估处理时长后确实接收到了请求处理结果,即能够因为该线程任务已结束而直接中止该线程。若云端服务器在预估处理时长后没有接收到请求处理结果,云端服务器也能够判断出该待分配请求数据在节点的处理过程中发生了超时,此时云端服务器也因为确定超时了而无需再继续等待接收请求处理结果,依旧可以直接中止该线程,提升线程的利用率,在单位时间内增加执行线程的总数。需要说明的是,节点即使超时也仍会继续按顺序处理请求数据,此处仅为云端服务器在超时后不再继续占用该线程来等待请求处理结果,以提高线程利用率,节点超时处理完请求数据后仍会向云端服务器反馈。
48.在一种可实施方式中,所述请求处理结果还包括错误信息、超时信息;所述方法还包括:根据同一所述请求处理节点反馈的各所述请求处理结果计算所述请求处理节点的错误率以及超时率;对所述错误率与超时率进行加权计算,根据加权计算结果对应的数值范围确定所述请求处理节点的健康状态等级;所述根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点,包括:根据各所述节点处理时长曲线计算健康状态等级最高的各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
49.在本技术实施例中,虽然预估处理时长已经能够表征出节点出现异常时的处理时长,但在实际情况中,即使异常节点的处理时长更短,也应该尽可能的避免使用异常节点进行处理。故请求处理节点反馈回来的请求处理结果中还可以包括有错误信息和超时信息,用以表征该请求数据处理时是否出现错误或者超时。通过对各请求处理结果的整合计算,
能够确定该请求处理节点的错误率以及超时率。云端服务器通过对错误率和超时率的加权计算,能够计算得到加权计算结果。云端服务器预先划分有若干数值范围,当加权计算结果的数值越高,即认为该节点的异常越严重。故将根据加权计算结果所属的数值范围来确定请求处理节点的健康状态等级,健康状态等级越高,即表明节点状态越良好。在进行预估处理时长的计算时,云端服务器将会选择健康状态等级最高的各请求处理节点来计算,以保证请求数据不被发送至异常节点。
50.在一种可实施方式中,所述再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点,包括:再次统计所述第一预设时长内接收到的所有待分配请求数据时,确定预约时间最早且还未被分配的所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点;更新所述请求处理节点的当前节点并发度和当前线程拥塞程度,重复所述确定预约时间最早且还未被分配的所述待分配请求数据对应的所述请求数据组的步骤,直至所有所述待分配请求数据均被分配;接收各所述请求处理节点反馈的所述请求处理结果,基于所述请求处理结果更新各所述节点处理时长曲线。
51.在本技术实施例中,由于请求处理节点所对应的链路波动、节点异常等非自身因素会随着时间发生变化,云端服务器在处理新接收到的待分配请求数据的同时,还会基于待分配请求数据的请求处理结果来对节点处理时长曲线进行更新。
52.具体的,云端服务器同样可以基于第一预设时长来统计待分配请求数据,并为每一个待分配请求数据分配请求处理节点。为了避免某一种类的请求数据均被分配至某一个请求处理节点,导致其余请求处理节点由于没有持续处理该种类的请求数据而使得更新后的节点处理时长曲线不准确。云端服务器并非同时为待分配请求数据进行节点的分配,而是根据预约时间的先后来逐个分配待分配请求数据。每当分配了一个待分配请求数据后,便会将该待分配请求数据看作为已经在对应的请求处理节点的处理队列中,以此更新请求处理节点的当前节点并发度和当前线程拥塞程度,这样能够保证随着当前节点并发度和当前线程拥塞程度的变化,其对应的预估处理时长也将发生变化,进而可能会有其余请求处理节点的预估处理时长更短,而使得请求数据能够更加符合实际节点处理能力变化情况的被分配至不同的请求处理节点,保证了更新后的节点处理时长曲线的准确性,且这样的分配方式相比于同时分配的方式,能够更加准确的将各请求数据分配至处理效率最高的请求处理节点中。
53.下面将结合附图2,对本技术实施例提供的系统数据资源的动态调度装置进行详细介绍。需要说明的是,附图2所示的系统数据资源的动态调度装置,用于执行本技术图1所示实施例的方法,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术图1所示的实施例。
54.请参见图2,图2是本技术实施例提供的一种系统数据资源的动态调度装置的结构
示意图。如图2所示,所述装置包括:构建模块201,用于基于分布式调度框架构建服务集群,所述服务集群包括至少两个请求处理节点;统计模块202,用于在滑动窗口中统计第一预设时长内接收到的所有请求数据,基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,并根据各所述唯一调用字符串将所有所述请求数据分成多个请求数据组,所述请求数据组中各所述请求数据的唯一调用字符串相同,所述请求数据信息包括协议信息、ip地址信息、端口信息;选取模块203,用于轮流在各所述请求数据组中逐个选取目标请求数据,并基于各所述目标请求数据的选取顺序构建请求数据顺序表后,基于随机数量按顺序分割所述请求数据顺序表,得到多个数据发送组,用以使所述数据发送组中任意相邻的两个所述目标请求数据对应的唯一调用字符串均不相同;分配模块204,用于为各所述请求处理节点依次分配各所述数据发送组,并接收各所述请求处理节点反馈的请求处理结果,基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;处理模块205,用于再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
55.在一种可实施方式中,统计模块202包括:组合单元,用于获取各所述请求数据对应的各请求数据信息,根据预设组合顺序组合所述请求数据信息中的各信息参数,得到唯一调用字符串。
56.在一种可实施方式中,选取模块203包括:优先级设置单元,用于根据各所述请求数据在所述第一预设时长内的预约时间先后,分别为每个所述请求数据组中的各目标请求数据设置优先级;选取单元,用于轮流在各所述请求数据组中逐个选取当前优先级最高的所述目标请求数据。
57.在一种可实施方式中,分配模块204包括:分类单元,用于基于所述请求数据组对各所述请求处理结果分类,得到各请求处理结果组,用以使所述请求处理结果组中各目标请求处理结果对应的请求数据组相同,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;拟合单元,用于分别对所述请求处理结果组中的各所述目标请求处理结果进行拟合,得到各节点处理时长曲线,所述节点处理时长曲线用以表征同一请求数据组中节点并发度、线程拥塞程度与线程处理时间的映射关系。
58.在一种可实施方式中,所述装置包括:中止模块,用于当经过所述预估处理时长后未接收到所述待分配请求数据对应的所述请求处理结果时,中止所述待分配请求数据对应的线程。
59.在一种可实施方式中,所述装置包括:计算模块,用于根据同一所述请求处理节点反馈的各所述请求处理结果计算所述
请求处理节点的错误率以及超时率;加权模块,用于对所述错误率与超时率进行加权计算,根据加权计算结果对应的数值范围确定所述请求处理节点的健康状态等级;处理模块205包括:处理单元,用于根据各所述节点处理时长曲线计算健康状态等级最高的各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
60.在一种可实施方式中,处理模块205还包括:统计单元,用于再次统计所述第一预设时长内接收到的所有待分配请求数据时,确定预约时间最早且还未被分配的所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点;重复单元,用于更新所述请求处理节点的当前节点并发度和当前线程拥塞程度,重复所述确定预约时间最早且还未被分配的所述待分配请求数据对应的所述请求数据组的步骤,直至所有所述待分配请求数据均被分配;更新单元,用于接收各所述请求处理节点反馈的所述请求处理结果,基于所述请求处理结果更新各所述节点处理时长曲线。
61.本领域的技术人员可以清楚地了解到本技术实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(field-programmable gate array,fpga)、集成电路(integrated circuit,ic)等。
62.本技术实施例的各处理单元和/或模块,可通过实现本技术实施例所述的功能的模拟电路而实现,也可以通过执行本技术实施例所述的功能的软件而实现。
63.参见图3,其示出了本技术实施例所涉及的一种电子设备的结构示意图,该电子设备可以用于实施图1所示实施例中的方法。如图3所示,电子设备300可以包括:至少一个中央处理器301,至少一个网络接口304,用户接口303,存储器305,至少一个通信总线302。
64.其中,通信总线302用于实现这些组件之间的连接通信。
65.其中,用户接口303可以包括显示屏(display)、摄像头(camera),可选用户接口303还可以包括标准的有线接口、无线接口。
66.其中,网络接口304可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
67.其中,中央处理器301可以包括一个或者多个处理核心。中央处理器301利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器305内的指令、程序、代码集或指令集,以及调用存储在存储器305内的数据,执行终端300的各种功能和处理数据。可选的,中央处理器301可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。中央处理器301可集成中央中央处理器(central processing unit,cpu)、图像中央处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解
调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到中央处理器301中,单独通过一块芯片进行实现。
68.其中,存储器305可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器305包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器305可用于存储指令、程序、代码、代码集或指令集。存储器305可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器305可选的还可以是至少一个位于远离前述中央处理器301的存储装置。如图3所示,作为一种计算机存储介质的存储器305中可以包括操作系统、网络通信模块、用户接口模块以及程序指令。
69.在图3所示的电子设备300中,用户接口303主要用于为用户提供输入的接口,获取用户输入的数据;而中央处理器301可以用于调用存储器305中存储的系统数据资源的动态调度应用程序,并具体执行以下操作:基于分布式调度框架构建服务集群,所述服务集群包括至少两个请求处理节点;在滑动窗口中统计第一预设时长内接收到的所有请求数据,基于各所述请求数据对应的各请求数据信息分别生成唯一调用字符串,并根据各所述唯一调用字符串将所有所述请求数据分成多个请求数据组,所述请求数据组中各所述请求数据的唯一调用字符串相同,所述请求数据信息包括协议信息、ip地址信息、端口信息;轮流在各所述请求数据组中逐个选取目标请求数据,并基于各所述目标请求数据的选取顺序构建请求数据顺序表后,基于随机数量按顺序分割所述请求数据顺序表,得到多个数据发送组,用以使所述数据发送组中任意相邻的两个所述目标请求数据对应的唯一调用字符串均不相同;为各所述请求处理节点依次分配各所述数据发送组,并接收各所述请求处理节点反馈的请求处理结果,基于各所述请求处理结果为各所述请求数据组拟合节点处理时长曲线,所述请求处理结果包括所述请求处理节点接收到被处理请求数据时的节点并发度、线程拥塞程度、所述被处理请求数据的线程处理时间;再次接收待分配请求数据时,确定所述待分配请求数据对应的所述请求数据组,并根据各所述节点处理时长曲线计算各所述请求处理节点的预估处理时长,将所述待分配请求数据分配至所述预估处理时长最短的所述请求处理节点。
70.本技术还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、dvd、cd-rom、微型驱动器以及磁光盘、rom、ram、eprom、eeprom、dram、vram、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器ic),或适合于存储指令和/或数据的任何类型的媒介或设备。
71.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术
所必须的。
72.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
73.在本技术所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
74.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
75.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
76.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-only memory, rom)、随机存取存储器(random access memory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
77.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(read-only memory, rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
78.以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献