一种数据处理方法、装置、电子设备、计算机可读介质与流程
未命名
08-22
阅读:85
评论:0
1.本技术涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备、计算机可读介质。
背景技术:
2.实际上,大数据计算在一些应用场景中所呈现的计算量不是一成不变的,而是存在比较明显的高峰与低谷的,如此使得用于执行大数据计算的集群,可能出现忙时计算资源不足以及闲时计算资源浪费的这一现象,故为了克服该现象所导致的不良影响,可以在某些时刻针对集群进行计算资源调整处理(也就是,针对集群进行计算资源方面的弹性伸缩处理)。
3.在一些技术方案中,可以依据一些预先设定的规则(比如,负载伸缩类型的规则等),确定何时对集群进行计算资源调整处理。
4.然而,因上述技术方案存在缺陷(比如,针对不同集群的不同指标项分别建立一套相应地轮询机制等),导致这些规则的判定耗时比较长,从而导致针对集群的计算资源调整性能不太好。
技术实现要素:
5.为了解决上述问题,本技术提供了一种数据处理方法、装置、电子设备、计算机可读介质。
6.为了实现上述目的,本技术提供的技术方案如下:
7.本技术提供一种数据处理方法,应用于集群管理设备,所述方法包括:
8.在针对目标集群创建了弹性伸缩规则之后,依据所述弹性伸缩规则,配置所述目标集群对应的缓存空间;所述弹性伸缩规则包括负载类型规则项;
9.依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,并将所述指标检测状态数据存储至所述目标集群对应的缓存空间;所述补齐时间范围是根据所述负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的;
10.判断是否达到轮询触发条件,若达到,则获取所述目标集群对应的指标检测更新结果,并依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理;所述指标检测更新结果用于描述所述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况;
11.依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,并继续执行所述判断是否达到轮询触发条件的步骤。
12.在一种可能的实施方式下,在针对目标集群创建弹性伸缩规则之前,所述集群管理设备用于利用同一个轮询机制对至少一个待管理集群进行弹性伸缩决策处理;
13.所述上一次轮询触发时间是指所述轮询机制下的上一个轮询过程的触发时刻;
14.所述轮询触发条件是指预先针对所述轮询机制所设定的、用于触发一次轮询过程的条件。
15.在一种可能的实施方式下,所述依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,包括:
16.将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口,并调用所述数据补齐接口得到所述负载类型规则项在补齐时间范围内的指标检测状态数据;
17.所述获取所述目标集群对应的指标检测更新结果,包括:
18.调用轮询数据接口得到所述目标集群对应的指标检测更新结果。
19.在一种可能的实施方式下,所述集群管理设备用于对若干集群进行管理;所述若干集群包括所述目标集群;
20.所述调用轮询数据接口得到所述目标集群对应的指标检测更新结果,包括:
21.调用轮询数据接口得到所述若干集群对应的指标检测更新结果;
22.所述依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理,包括:
23.依据各所述集群对应的指标检测更新结果,对各所述集群对应的缓存空间中存储内容进行更新处理;
24.所述依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,包括:
25.依据各所述集群对应的缓存空间中存储内容,确定各所述集群对应的弹性伸缩决策结果。
26.在一种可能的实施方式下,所述将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口之前,所述方法还包括:
27.从预设缓存区域读取所述轮询数据接口的上一次调用时间,作为所述上一次轮询触发时间;
28.根据所述负载类型规则项所携带的时间段和所述上一次轮询触发时间,确定所述补齐时间范围。
29.在一种可能的实施方式下,所述方法还包括:
30.利用所述轮询数据接口的当前次调用时间,更新预设缓存区域中所存储的数据。
31.在一种可能的实施方式下,所述依据针对目标集群所创建的弹性伸缩规则,配置所述目标集群对应的缓存空间,包括:
32.对所述弹性伸缩规则进行解析处理,得到规则树;所述弹性伸缩规则包括若干规则表达对象;所述若干规则表达对象包括负载类型规则项;所述规则树包括各所述规则表达对象对应的节点;
33.依据所述规则树,配置所述目标集群对应的缓存空间,所述缓存空间包括各所述规则表达对象对应的缓存区域。
34.在一种可能的实施方式下,所述目标集群对应的缓存空间包括所述负载类型规则项对应的缓存区域;
35.所述将所述指标检测状态数据存储至所述目标集群对应的缓存空间,包括:
36.将所述指标检测状态数据存储至所述负载类型规则项对应的缓存区域。
37.在一种可能的实施方式下,所述弹性伸缩规则还包括时间类型规则项;
38.所述方法还包括:
39.判断当前次轮询触发时间是否位于所述时间类型规则项所表征的时间范围内,得到判断结果;
40.所述依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,包括:
41.依据所述判断结果以及所述目标集群对应的缓存空间中的存储内容,确定所述目标集群对应的弹性伸缩决策结果。
42.本技术提供了一种数据处理装置,包括:
43.缓存配置单元,用于在针对目标集群创建了弹性伸缩规则之后,依据所述弹性伸缩规则,配置所述目标集群对应的缓存空间;所述弹性伸缩规则包括负载类型规则项;
44.数据补齐单元,用于依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,并将所述指标检测状态数据存储至所述目标集群对应的缓存空间;所述补齐时间范围是根据所述负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的;
45.轮询更新单元,用于判断是否达到轮询触发条件,若达到,则获取所述目标集群对应的指标检测更新结果,并依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理;所述指标检测更新结果用于描述所述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况;依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,并继续执行所述判断是否达到轮询触发条件的步骤。
46.本技术提供了一种电子设备,所述设备包括:处理器和存储器;
47.所述存储器,用于存储指令或计算机程序;
48.所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行本技术提供的数据处理方法。
49.本技术提供了一种计算机可读介质,所述计算机可读介质中存储有指令或计算机程序,当所述指令或计算机程序在设备上运行时,使得所述设备执行本技术提供的数据处理方法。
50.本技术提供了一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行本技术提供的数据处理方法的程序代码。
51.与现有技术相比,本技术至少具有以下优点:
52.本技术提供的技术方案中,对于一个集群管理设备来说,在针对目标集群创建了弹性伸缩规则之后,先依据该弹性伸缩规则,配置该目标集群对应的缓存空间;再依据该目标集群的集群标识、以及该弹性伸缩规则中的负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间,以使该缓存空间中记录有该负载类型规则项在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内所呈现的状态(比如,
哪些时刻达到了该负载类型规则项中所涉及的负载指标条件);随后,通过轮询的方式,不断地获取该目标集群对应的指标检测更新结果,以使该指标检测更新结果用于描述该弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况,并依据该指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理,以使该存储空间中针对该指标检测时间段所记录的内容不断地进行更新,如此能够确保该缓存空间中的存储内容的实时性,以便后续能够依据该缓存空间中存储内容,实时地确定出该目标集群对应的弹性伸缩决策结果,如此能够借助一次补齐+不断轮询更新这一方式,不仅实现了针对一个集群的弹性伸缩决策的目的,还实现了将针对该目标集群的弹性伸缩决策过程直接加入已有轮询机制的目的,从而能够有效地避免针对该目标集群重新创建一个新的轮询机制所造成的不良影响,进而有利于提高弹性伸缩决策效果。
[0053]
可见,对于集群管理设备来说,该集群管理设备可以采用同一个轮询机制,对其所管理的所有具有弹性伸缩配置的集群进行弹性决策处理,如此能够实现由该集群管理设备针对所有集群的所有指标项进行集中轮询处理的目的,从而有利于提高弹性伸缩决策效果。
[0054]
另外,对于一个集群来说,因在其规则创建时执行了一次数据补齐过程,以使该集群对应的缓存空间中存储有在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内的指标检测状态数据,从而使得在随后的不断轮询过程中只需获取在轮询间隔期间所呈现的指标检测状态更新情况进行存储更新即可,如此能够实现针对一个集群下所有指标进行集中查询的目的,从而能够有效地提高针对一个集群的弹性伸缩决策效率。
[0055]
此外,对于上文目标集群来说,因其所涉及的补齐时间范围是根据负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的,以使该补齐时间范围所涉及的结束时刻就是当前次轮询的开始时刻,如此能够有效地克服因规则创建时刻不属于某一次轮询触发时机而导致的不良影响(比如,因无法使用集群管理设备中已经存在的轮询机制而导致的资源开销),从而能够实现在不遗漏数据的前提下顺利地加入已有轮询机制的目的,进而有利于提高该集群管理设备针对集群的弹性伸缩决策效果。
[0056]
还有,对于上文集群管理设备来说,其可以在每次轮询过程中只借助一个接口(比如,轮询数据接口)获取所有集群在轮询间隔期间所呈现的指标检测状态更新情况,如此能够借助同一个接口,实现利用同一个轮询机制完成针对所有集群的弹性伸缩决策过程的目的,从而能够有效地避免针对每一个集群均配置一个轮询机制所造成的不良影响,进而有利于提高该集群管理设备针对集群的弹性伸缩决策效果。
附图说明
[0057]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0058]
图1为本技术实施例提供的一种数据处理方法的流程图;
[0059]
图2为本技术实施例提供的一种弹性伸缩规则的示意图;
[0060]
图3为本技术实施例提供的一种集群对应的缓存空间的示意图;
[0061]
图4为本技术实施例提供的一种负载类型规则项对应的缓存区域内存储内容的更新示意图;
[0062]
图5为本技术实施例提供的一种数据处理装置的结构示意图;
[0063]
图6为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0064]
为了便于理解,下面先对本技术所涉及的技术名词进行说明。
[0065]
弹性伸缩是指调整一个集群的计算规模(比如,调整任务task节点的数量)。
[0066]
时间伸缩类型用于按照某个时间点或者某个时间段进行弹性伸缩触发。另外,负载伸缩类型可以进一步地细分为两种:一种为时间点伸缩类型,其具体是指在固定的时间点单次或重复执行弹性伸缩处理。比如:单次,在2023年1月1日8点整触发伸缩动作;重复,在每周一的8点整触发伸缩动作。另一种为时间段伸缩类型,其具体是指在固定的时间段内重复执行弹性伸缩处理,其可以与负载伸缩类型搭配使用。比如:在每月的1号8点整到9点整时间段内,触发伸缩动作,触发间隔可以系统定义,比如5分钟,也就是在该时间段内每5分钟触发一次伸缩动作。
[0067]
负载伸缩类型是指按照由用户针对某个集群预先指定的某一负载指标(比如,另一种资源协调者(yet another resource negotiator,yarn)指标等)及其对应的阈值进行弹性伸缩触发。也就是,如果在某一时间段内该负载指标的指标值大于该阈值(或者,小于该阈值)的次数达到用户所指定的次数值时,触发伸缩动作。
[0068]
采样间隔是指在针对集群进行数据采集时所依据的时间间隔。比如,在针对一个集群的某一个负载指标值进行采集时,可以借助指标监控服务(比如,prometheus)在集群端进行固定频率的采样与收集,此时,可以将相邻两次采样之间的间隔时间段叫做采样间隔。
[0069]
轮询间隔是指集群管理设备对各集群的相关数据(比如,指标值等)进行轮询时相邻两次轮询之间的间隔时间。可见,当该轮询间隔为5分钟,而且上文采样间隔为30秒时,在一次轮询中,该集群管理设备可以针对一个集群查询到的某一负载指标的10条指标值。
[0070]
基于上文技术名词,下面针对本技术的技术方案进行介绍。
[0071]
经研究发现,在一些技术方案下,为了更好地提高弹性伸缩决策效果,可以借助轮询方式实现负载伸缩类型下规则的触发逻辑,但是这种触发方式存在缺陷,下面结合示例对该缺陷进行说明。
[0072]
作为示例,假设具有弹性伸缩配置的集群数量有1000个,每个集群有10个规则,每个规则有3条子规则(用“或”间隔的),每条子规则涉及3项负载指标(用“且”间隔的)。基于该假设可知,在每次弹性决策过程中需要进行数据查询的次数为:1000*10*3*3=90000(次),因用户针对不同集群不同规则中指标项所设置的取样时间段(也就是,在什么时间范围内需要针对该指标项进行采样)可能不同,如此导致无法分集群分指标进行集中一次查询,不得不查询90000次,从而导致需要针对不同集群的不同指标项分别建立一套相应地轮询机制,进而导致针对所有集群的一次弹性决策过程的耗时比较长,如此导致弹性伸缩决策性能不佳。
[0073]
基于此,本技术提供了一种应用于集群管理设备的数据处理方法,其具体为:在针对目标集群创建了弹性伸缩规则之后,先依据该弹性伸缩规则,配置该目标集群对应的缓存空间;再依据该目标集群的集群标识、以及该弹性伸缩规则中的负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间,以使该缓存空间中记录有该负载类型规则项在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内所呈现的状态(比如,哪些时刻达到了该负载类型规则项中所涉及的负载指标条件);随后,通过轮询的方式,不断地获取该目标集群对应的指标检测更新结果,以使该指标检测更新结果用于描述该弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况,并依据该指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理,以使该存储空间中针对该指标检测时间段所记录的内容不断地进行更新,如此能够确保该缓存空间中的存储内容的实时性,以便后续能够依据该缓存空间中存储内容,实时地确定出该目标集群对应的弹性伸缩决策结果,如此能够借助一次补齐+不断轮询更新这一方式,不仅实现了针对一个集群的弹性伸缩决策的目的,还实现了将针对该目标集群的弹性伸缩决策过程直接加入已有轮询机制的目的,从而能够有效地避免针对该目标集群重新创建一个新的轮询机制所造成的不良影响,进而有利于提高弹性伸缩决策效果。
[0074]
可见,对于集群管理设备来说,该集群管理设备可以采用同一个轮询机制,对其所管理的所有具有弹性伸缩配置的集群进行弹性决策处理,如此能够实现由该集群管理设备针对所有集群的所有指标项进行集中轮询处理的目的,从而有利于提高弹性伸缩决策效果。
[0075]
另外,对于一个集群来说,因在其规则创建时执行了一次数据补齐过程,以使该集群对应的缓存空间中存储有在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内的指标检测状态数据,从而使得在随后的不断轮询过程中只需获取在轮询间隔期间所呈现的指标检测状态更新情况进行存储更新即可,如此能够实现针对一个集群下所有指标进行集中查询的目的,从而能够有效地提高针对一个集群的弹性伸缩决策效率。
[0076]
此外,因补齐时间范围是根据负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的,以使该补齐时间范围所涉及的结束时刻就是当前次轮询的开始时刻,如此能够有效地克服因规则创建时刻不属于某一次轮询触发时机而导致的不良影响(比如,因无法使用集群管理设备中已经存在的轮询机制而导致的资源开销),从而能够实现在不遗漏数据的前提下顺利地加入已有轮询机制的目的,进而有利于提高该集群管理设备针对集群的弹性伸缩决策效果。
[0077]
还有,本技术不限定上文数据处理方法的执行主体,例如,本技术实施例提供的数据处理方法可以应用于终端设备或服务器等具有数据处理功能的设备。又如,本技术实施例提供的数据处理方法也可以借助不同设备(例如,终端设备与服务器、两个终端设备、或者两个服务器)之间的数据通信过程进行实现。其中,终端设备可以为智能手机、计算机、个人数字助理(personal digital assitant,pda)或平板电脑等。服务器可以为独立服务器、集群服务器或云服务器。
[0078]
为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的
附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0079]
为了更好地理解本技术所提供的技术方案,下面先结合一些附图对本技术提供的数据处理方法进行说明。如图1所示,本技术实施例提供的应用于集群管理设备的数据处理方法,包括下文s1-s5。其中,该图1为本技术实施例提供的一种数据处理方法的流程图。
[0080]
s1:在针对目标集群创建了弹性伸缩规则之后,依据该弹性伸缩规则,配置该目标集群对应的缓存空间;该弹性伸缩规则包括负载类型规则项。
[0081]
其中,集群管理设备用于对至少一个集群进行管理;而且本技术不限定该集群管理设备,例如,其可以采用现有的或者未来出现的任意一种能够针对一些集群进行统一管理的设备进行实施。
[0082]
另外,对于本技术提供的集群管理设备来说,如果该集群管理设备用于针对若干集群进行管理,则该集群管理设备可以借助s1-s5所示的处理方式,以实现采用同一个轮询机制,完成所有集群的一些管理事务(比如,弹性伸缩决策等方面的事务),如此能够有效地避免因所有集群的一些管理事务需要分别采用不同的轮询机制所造成的不良影响,从而有利于提高该集群管理设备针对这些集群的管理性能(尤其是,弹性伸缩决策性能)。
[0083]
目标集群是指一个需要加入集群管理设备中已有的轮询机制的集群;而且本技术不限定该目标集群,比如,该目标集群可以是指新建的具有弹性伸缩配置的集群,以使该目标集群可以在该集群管理设备的辅助下进行弹性伸缩处理。又如,该目标集群也可以是指刚添加了弹性伸缩规则的集群,以使该集群管理设备能够基于该弹性伸缩规则针对该集群进行弹性伸缩决策。
[0084]
弹性伸缩规则是指由用户针对一个集群(比如,目标集群)所设定的、在针对该集群进行弹性伸缩决策时所需依据的规则。例如,当上文目标集群为图2所示的集群1时,该目标集群对应的弹性伸缩规则可以包括图2所示的规则1至规则n。其中,n为正整数。
[0085]
另外,本技术不限定上文弹性伸缩规则,为了便于理解,下面结合两种示例进行说明。
[0086]
示例一,弹性伸缩规则可以至少包括负载类型规则项,以使该弹性伸缩规则可以至少按照一种或者多种负载指标项进行弹性伸缩触发。
[0087]
其中,负载类型规则项是指属于负载伸缩类型的规则,例如,该负载类型规则项可以是图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项,或者图2所示的“在30分钟的时间内,yarn可用内存小于50吉字节(gigabyte,gb)的情况发生次数大于5”这一规则项。
[0088]
另外,本技术不限定上文负载类型规则项的实施方式,例如,该负载类型规则项可以被用于表示某一个指标项在某一个时间段内是否满足某个条件。可见,在一种可能的实施方式下,该负载类型规则项可以携带有指标项标识、指标检测时间段、以及指标判定条件。其中,该指标项标识用于唯一标识一种负载指标(比如,yarn排队任务数等)。该指标检测时间段用于表示针对该负载指标进行检测的时间段(比如,2小时内等)。该指标判定条件用于表示由用户针对该负载指标所指定的、在进行弹性伸缩决策时所需关注的情况(比如,yarn排队任务数大于5)。
[0089]
此外,本技术不限定上文负载类型规则项的个数,比如,一个弹性伸缩规则可以包括一个或者多个负载类型规则项。
[0090]
示例二,弹性伸缩规则可以至少包括负载类型规则项和时间类型规则项,以使该弹性伸缩规则能够同时按照一些负载指标项的状态以及某个时间段进行弹性伸缩触发。
[0091]
其中,时间类型规则项是指一项属于时间伸缩类型的规则,例如,该时间类型规则项可以是图2所示的“每月最后一天与月初第一天”、“每日的9到12点”、或者“每周的周一到周五”等规则项。
[0092]
另外,本技术不限定上文时间类型规则项,比如,在一些应用场景下,该时间类型规则项可以被用于限定某个时间段。可见,在一种可能的实施方式下,该时间类型规则项属于时间段伸缩类型,而且该时间类型规则项可以携带有弹性伸缩需求时间段。其中,该弹性伸缩需求时间段是指在哪一个时间范围内需要进行弹性伸缩处理。
[0093]
此外,本技术不限定上文时间类型规则项的个数,比如,一个弹性伸缩规则可以包括一个或者多个时间类型规则项。
[0094]
基于上文弹性伸缩规则的相关内容可知,在一种可能的实施方式下,该弹性伸缩规则可以包括一个或者多个负载伸缩类型下的规则项。在另一种可能的实施方式下,该弹性伸缩规则可以包括至少一个负载伸缩类型下的规则项、以及至少一个时间伸缩类型下的规则项,以使该弹性伸缩规则属于时间+负载的混合类型规则。
[0095]
另外,本技术不限定上文弹性伸缩规则的创建过程,例如,在一些应用场景下,用户可以借助自然语言以及规则引擎的表达方式(比如,图2所示的规则1所使用的表达式),在相关界面上针对某个集群配置该弹性伸缩规则,以完成针对该弹性伸缩规则的创建过程。
[0096]
上文“目标集群对应的缓存空间”用于存储针对该目标集群创建的弹性伸缩规则的相关数据(比如,图3所示的“timestamp-1”之类的时间戳等),以便后续能够借助该“目标集群对应的缓存空间”中的存储内容,更快地完成针对该目标集群的弹性伸缩决策。
[0097]
另外,本技术不限定上文“目标集群对应的缓存空间”的配置过程,例如,为了更好地提高弹性伸缩决策效率,可以基于空间换时间这一原则,配置该目标集群对应的缓存空间。为了便于理解,下面结合示例进行说明。
[0098]
作为示例,上文“目标集群对应的缓存空间”的配置过程,具体可以包括下文步骤11-步骤12。
[0099]
步骤11:对针对目标集群所创建的弹性伸缩规则进行解析处理,得到规则树;其中,该弹性伸缩规则包括若干规则表达对象;该若干规则表达对象包括负载类型规则项;该规则树包括各规则表达对象对应的节点。
[0100]
其中,规则表达对象是指上文“针对目标集群所创建的弹性伸缩规则”中存在的、用于表达某种规则的对象;而且本技术不限定该规则表达对象,例如,其可以是某个规则项(比如,图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项),也可以是由多个规则项所组成的表达式(比如,图2所示的“子规则1”这一规则表达式等),还可以是由多个表达式所组成的集合(比如,图2所示的“集群1”这一规则集合)。
[0101]
可见,对于针对目标集群所创建的弹性伸缩规则来说,该弹性伸缩规则可以包括若干规则表达对象(比如,图2所示的所有对象);而且该若干规则表达对象中某些对象之间
存在某种关联关系(比如,归属关系、或者、且等关系)。
[0102]
规则树是指按照树结构表示上文弹性伸缩规则,以使该规则树不仅能够表示出该弹性伸缩规则中所存在的所有规则表达对象,还能够表示出该弹性伸缩规则中不同规则表达对象之间的关联关系。例如,当上文目标集群为图2所示的集群1时,该目标集群对应的规则树可以是图2所示的树结构。
[0103]
另外,对于一个集群对应的规则树来说,该规则树中每个节点都可以表示出针对该集群所创建的弹性伸缩规则中存在的规则表达对象;而且对于该规则树中的一个节点来说,如果该节点属于根节点,则该节点对应的规则表达对象为该集群的集群标识,以使该节点能够代表针对该集群所创建的规则集合;如果该节点属于叶子节点,则该节点对应的规则表达对象为该集群中存在的属于负载伸缩类型的规则项或者属于时间伸缩类型的规则项,以使该节点能够代表针对该集群进行弹性伸缩决策时所需参考的负载指标或者时间段;如果该规则树中存在该节点对应的子节点,则该节点对应的规则表达对象为由多个规则项所组成的表达式。
[0104]
此外,本技术不限定上文步骤11中“解析处理”的实施方式,例如,其可以为现有的或者未来出现的任意一种能够针对一个规则集合进行解析处理的方法进行实施。又如,其可以按照预先设定的规则解析策略进行解析处理,本技术对此不做具体限定。
[0105]
步骤12:依据规则树,配置目标集群对应的缓存空间,该缓存空间包括各规则表达对象对应的缓存区域。
[0106]
本技术中,对于上文目标集群来说,如果针对该目标集群所创建的弹性伸缩规则包括若干规则表达对象,则在从该弹性伸缩规则中解析出规则树之后,可以依据该规则树配置该目标集群对应的缓存空间,以使该缓存空间能够包括各规则表达对象对应的缓存区域(比如,图3所示的各个缓存区域),从而使得这些缓存区域中的存储内容能够表示出该规则树。为了便于理解,下面结合示例进行说明。
[0107]
作为示例,当上文目标集群为图2所示的集群1,针对该目标集群所创建的弹性伸缩规则为图2所示的规则,而且该目标集群对应的缓存空间借助远程字典服务(remote dictionary server,redis)进行实施时,该目标集群对应的缓存空间可以至少包括图3所示的缓存区域;而且图3所示的不同缓存区域的存储内容如下:
[0108]
①
规则树中除了叶子节点以外其他节点所代表的规则表达对象对应的缓存区域均采用数据结构1(比如,set数据结构)进行数据缓存处理。例如,如图3所示,集群1的标识
→
set《规则1的标识,
……
,规则n的标识》这一缓存区域用于以“集群1的标识”这一字符串作为键(key)缓存规则标识集合这一值(value);规则1的标识
→
set《子规则1的标识,子规则2的标识》这一缓存区域用于以“规则1的标识”这一字符串作为key缓存子规则标识集合这一value;子规则m的标识
→
set《一些规则项》这一缓存区域用于以“子规则m的标识”这一字符串作为key缓存规则项集合这一value,m为正整数,m≤m,m表示该规则1是由m个子规则组成的。
[0109]
②
规则树中叶子节点所代表的、属于负载伸缩类型的规则表达对象(比如,某个负载类型规则项)对应的缓存区域均采用数据结构2(比如,list数据结构)进行数据缓存处理。例如,如图3所示,负载类型规则项的标识
→
list《timestamp》。其中,该timestamp为指标值满足上文指标判定条件(比如,超过阈值或者低于阈值)的指标项对应的时间戳,list
的插入逻辑是指标值满足该指标判定条件(比如,yarn排队任务数大于5)即插入。
[0110]
需要说明的是,本技术不限定上段“负载类型规则项的标识”的实施方式,比如,该“负载类型规则项的标识”可以为metric#period#unit#compare#threshold#times,其中,metric为负载指标项、period为指标检测时间段、unit为采样间隔、compare为比较符(比如,大于或者小于等)、threshold为阈值、times为发生次数,以使该“负载类型规则项的标识”能够表示出该负载类型规则项所携带的语义信息,以便后续方便基于该“负载类型规则项的标识”对获取到的指标值进行判断。可见,当该负载类型规则项为图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项时,该负载类型规则项的标识可以是图3所示的“availablememory#30#minute#less#50#5”这一字符串。
[0111]
还需要说明的是,本技术也不限定时间类型规则项的标识的实施方式,比如,该“时间类型规则项的标识”可以为recurrencetype#(recurrencevalue)#(begin#end),其中,recurrencetype为周期类型(比如,每天、每周等);recurrencevalue为周期值,而且recurrencevalue属于可选的内容,比如,当周期类型为每周或者每月时recurrencevalue这一参数不为空;但是,当周期类型为每天时recurrencevalue这一参数可以为空;begin为间隔起始时间,end为间隔结束时间,而且begin与end也属于可选的内容,比如,当周期类型为每天时begin与end可以不为空。可见,当该时间类型规则项为图2所示的“每日的9到12点”这一规则项时,该时间类型规则项的标识可以是图3所示的“daily#09:00-21:00”这一字符串。
[0112]
再需要说明的是,因属于时间伸缩类型的规则表达对象(比如,某个时间类型规则项)的判定过程所需涉及的数据(比如,当前时刻以及该时间类型规则项中所圈定的时间范围)很容易获取,故为了更好地节省空间,无需针对上文规则树中叶子节点所代表的、属于时间伸缩类型的规则表达对象配置一个额外的、用于存储相关数据的缓存区域。
[0113]
基于上文步骤11至步骤12的相关内容可知,对于一个集群来说,在针对该集群创建好弹性伸缩规则之后,可以先从该弹性伸缩规则中解析出树结构;再依据该树结构,针对该集群进行缓存空间配置,以得到该集群对应的缓存空间,以使该缓存空间包括该弹性伸缩规则中各个规则表达对象对应的缓存区域(比如,负载类型规则项对应的缓存区域),以便后续能够利用这些缓存区域记录该弹性伸缩规则及其针对该弹性伸缩规则所获取到的相关数据(比如,时间戳等)。
[0114]
基于上文s1的相关内容可知,对于一个集群管理设备来说,如果该集群管理设备正在利用同一个轮询机制,实现针对多个集群的弹性伸缩决策,则在针对目标集群(比如,一个新建集群或者一个刚添加了弹性伸缩规则的集群等)创建好弹性伸缩规则之后,可以依据该弹性伸缩规则配置该目标集群对应的缓存空间,以使该缓存空间能够记录该弹性伸缩规则及其针对该弹性伸缩规则所获取到的相关数据(比如,时间戳等),以便后续能够借助该缓存空间以及该轮询过程,实现针对该目标集群的弹性伸缩决策,如此能够实现将该集群管理设备所管理的、具有弹性伸缩决策配置的所有集群均集中统一到同一个轮询机制中,从而能够有效地提高弹性伸缩决策效率。
[0115]
s2:依据目标集群的集群标识以及负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间;该补齐时间范围是根据该负载类型规则项所携带的指标检测
时间段和上一次轮询触发时间所确定的。
[0116]
其中,目标集群的集群标识用于唯一标识该目标集群。
[0117]
指标项标识是指上文负载类型规则项中存在的、用于标识一个负载指标项的字符串;而且本技术不限定该指标项标识,比如,当该负载类型规则项为图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项时,该指标项标识可以是“yarn排队任务数”这一字符串。
[0118]
指标检测时间段是指上文负载类型规则项中存在的、用于标识针对一个负载指标项的检测时间段;而且本技术不限定该指标检测时间段。比如,当该负载类型规则项为图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项时,该指标检测时间段可以是“2小时的时间内”这一字符串。
[0119]
上一次轮询触发时间是指在上文集群管理设备中存在的、用于针对具有弹性伸缩决策配置的集群进行集中轮询处理的轮询过程的最近一次轮询时间。可见,该“上一次轮询触发时间”就是指截止于上文s2的执行时间,该轮询过程的最后一次触发时刻。
[0120]
基于上段内容可知,在一种可能的实施方式下,如果在针对目标集群创建弹性伸缩规则之前,集群管理设备用于利用同一个轮询机制对至少一个待管理集群进行弹性伸缩决策处理,则上文“上一次轮询触发时间”可以是指该轮询机制下的上一个轮询过程的触发时刻。其中,该待管理集群是指在针对目标集群创建弹性伸缩规则之前需要由该集群管理设备借助同一个轮询机制进行管理的集群。
[0121]
另外,本技术不限定上文“上一次轮询触发时间”的获取方式,例如,在一些应用场景下,对于用于针对具有弹性伸缩决策配置的集群进行轮询处理的轮询过程来说,该轮询过程的每次触发时间均可以更新存储至某个缓存空间中,以便后续能够从该缓存空间至快速地读取该“上一次轮询触发时间”。
[0122]
补齐时间范围是指在针对目标集群的弹性伸缩决策进行轮询处理时所需使用的历史时间段,以便该目标集群能够借助该补齐时间范围内所涉及的数据直接加入已有的轮询机制。
[0123]
另外,为了能够实现在不遗漏数据的前提下加入同一个轮询机制,本技术还提供了上文补齐时间范围的一种确定过程,其具体可以为:根据上文负载类型规则项所携带的指标检测时间段和上一次轮询触发时间,确定该补齐时间范围,以使该补齐时间范围具体为[上一次轮询触发时间-该指标检测时间段,该上一次轮询触发时间],如此能够借助该补齐时间范围,实现将目标集群在已有的轮询机制下的上一次轮询过程所需使用的数据进行补齐,以便后续只需确定轮询间隔所涉及的数据即可,以实现一次补齐+多次轮询更新的目的,如此有利于提高弹性伸缩决策效率。
[0124]
上文“负载类型规则项在补齐时间范围内的指标检测状态数据”用于表示该负载类型规则项在补齐时间范围内所呈现的状态;而且本技术不限定该“负载类型规则项在补齐时间范围内的指标检测状态数据”的实施方式,例如,其可以包括满足该负载类型规则项所携带的指标判定条件的指标值的采集时间点(比如,时间戳)。为了便于理解,下面结合示例进行说明。
[0125]
作为示例,当上文负载类型规则项为图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项,而且上一次轮询触发时间为10:00时,补齐时
间范围可以是[8:00,10:00],而且上文“负载类型规则项在补齐时间范围内的指标检测状态数据”的获取过程具体可以为:在[8:00,10:00]这一时间范围内按照预先设定的采样间隔(比如,30秒)获取yarn排队任务数,并判断每次采样所得的yarn排队任务数是否大于5,如果大于5,则将该yarn排队任务数的时间戳(也就是,该yarn排队任务数的采样时间点)存储至该负载类型规则项对应的缓存区域,以使该缓存区域内存储有在[8:00,10:00]这一时间范围内出现的大于5的yarn排队任务数的时间戳(比如,图4所示的“timestamp-1”以及“timestamp-7”等时间戳),以便后续能够将该“在[8:00,10:00]这一时间范围内出现的大于5的yarn排队任务数的时间戳”确定为上文“负载类型规则项在补齐时间范围内的指标检测状态数据”。
[0126]
基于上段内容可知,在一种可能的实施方式下,当上文若干规则表达对象包括负载类型规则项,而且上文目标集群对应的缓存空间包括各个规则表达对象对应的缓存区域时,上文s2具体可以为:依据目标集群的集群标识以及负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该负载类型规则项对应的缓存区域,以便后续能够基于该负载类型规则项对应的缓存区域中的记录内容,判定是否满足该负载类型规则项。
[0127]
实际上,为了更好地提高弹性伸缩决策效果,可以借助一个预先构建好的接口获取一个集群对应的补齐数据。基于此,本技术还提供了上文“负载类型规则项在补齐时间范围内的指标检测状态数据”的一种获取过程,其具体可以为:将上文目标集群的集群标识、该负载类型规则项所携带的指标项标识以及该补齐时间范围传入数据补齐接口,并调用该数据补齐接口得到该负载类型规则项在补齐时间范围内的指标检测状态数据。
[0128]
其中,数据补齐接口用于依据集群标识与指标项获取某一个时间范围内满足一定条件(比如,上文“yarn排队任务数大于5”这一条件)的指标值及其对应的时间戳的列表(list);而且该数据补齐接口的返回值可以记为list《factvalue,timestamp》。该factvalue为指标值;该timestamp为该指标值对应的时间戳。
[0129]
另外,上文数据补齐接口可以是预先依据应用场景所配置的;而且本技术不限定该数据补齐接口的工作原理,例如,当上文负载类型规则项为图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项,而且上文补齐时间范围可以是[8:00,10:00]时,该数据补齐接口的工作原理具体可以为:在[8:00,10:00]这一时间范围内按照预先设定的采样间隔(比如,30秒)获取yarn排队任务数,并判断每次采样所得的yarn排队任务数是否大于5,以便后续能够利用大于5的指标值以及该指标值对应的时间戳构成列表,并向上文集群管理设备返回该列表,以使该集群管理设备能够利用该列表中数据(比如,图2所示的“timestamp-1”等时间戳),更新该负载类型规则项对应的缓存区域,如此能够实现针对该负载类型规则项对应的缓存区域内的存储内容的初始化处理的目的。
[0130]
基于上文s2的相关内容可知,对于一个集群管理设备来说,如果该集群管理设备正在利用同一个轮询机制,实现针对多个待管理集群的弹性伸缩决策处理,则在针对目标集群创建好弹性伸缩规则之后,当该弹性伸缩规则至少包括负载类型规则项时,可以依据该目标集群的集群标识以及负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据(比如,图3所示的“timestamp-1”以及“timestamp-7”这两个时间戳),以使该指标检测状态数据能够表示出该负载类型规则项在[上一次轮询
触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内所呈现的状态(比如,哪些时刻达到了该负载类型规则项所表征的负载指标条件),并将该指标检测状态数据存储至该负载类型规则项对应的缓存区域,如此能够实现针对该缓存区域中的存储内容进行该轮询机制下的轮询初始化处理的目的,以便后续能够在这些初始化内容的基础上,不断地利用轮询间隔内所出现的数据进行存储内容更新处理,如此能够确保后续每次轮询只需获取轮询间隔内所出现的数据即可,从而有利于提高弹性伸缩决策效率。
[0131]
需要说明的是,本技术不限定上文s2中步骤“依据目标集群的集群标识以及负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据”的执行时间与上文s1中步骤“依据该弹性伸缩规则,配置该目标集群对应的缓存空间”的执行时间之间的相对关系,比如,两者可以同时执行。又如,两者可以按照预先设定的顺序先后执行。
[0132]
s3:判断是否达到轮询触发条件,若是,则执行下文s4-s5;若否,则返回继续执行上文s3。
[0133]
其中,轮询触发条件可以预先设定,比如,其具体可以为:当前时刻与上一次轮询触发时间之间的差值达到预先设定的轮询间隔(如,5分钟)。
[0134]
另外,本技术不限定该轮询触发条件,比如,如果在针对目标集群创建弹性伸缩规则之前,集群管理设备用于利用同一个轮询机制对至少一个待管理集群进行弹性伸缩决策处理在,则该轮询触发条件可以是指预先针对该轮询机制所设定的、用于触发一次轮询过程的条件,以使任意一个集群(比如,目标集群)能够依据该轮询触发条件顺利地加入该轮询机制所描述的不断轮询过程。
[0135]
基于上述s3的相关内容可知,对于一个集群管理设备来说,该集群管理设备可以判断当前时刻与上一次轮询触发时间之间的差值是否达到轮询间隔,若低于轮询间隔,则可以确定仍未达到轮询触发条件,可以等待预先设定的时长之后,返回继续执行“判断当前时刻与上一次轮询触发时间之间的差值是否达到轮询间隔”这一步骤即可;若等于轮询间隔,则可以确定达到了轮询触发条件,故可以针对各个具有弹性伸缩配置的集群均进行一轮弹性伸缩决策处理(也就是,下文s4-s5所示的处理过程),如此能够实现将所有集群的弹性伸缩处理集中至同一个轮询机制下的目的,如此有利于提高弹性伸缩决策效率。
[0136]
s4:若达到轮询触发条件,则获取目标集群对应的指标检测更新结果,并依据该目标集群对应的指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理;该指标检测更新结果用于描述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况。
[0137]
其中,指标检测更新结果用于描述目标集群对应的弹性伸缩规则在相邻两次轮询之间(也就是,一个轮询间隔内)所呈现的状态。可见,当该弹性伸缩规则包括上文负载类型规则项时,该目标集群对应的指标检测更新结果至少可以包括该负载类型规则项对应的指标检测状态更新数据(比如,图4所示的“timestamp-14”以及“timestamp-18”这两个时间戳),以使该指标检测状态更新数据能够表示出该负载类型规则项在该轮询间隔内所呈现的状态。
[0138]
另外,本技术不限定上文指标检测更新结果的获取过程。
[0139]
实际上,为了更好地提高弹性伸缩决策效果,上文“目标集群对应的指标检测更新
结果”可以借助预先设定的接口进行获取。基于此,本技术还提供了该“目标集群对应的指标检测更新结果”的获取过程的一种可能的实施方式,其具体可以为:调用轮询数据接口得到该目标集群对应的指标检测更新结果。
[0140]
其中,轮询数据接口用于针对所有具有弹性伸缩配置的集群所涉及的所有指标项进行集中一次数据采集处理;而且该轮询数据接口的返回值可以记为map《clusterid,list《metric,factvalue,timestamp》》,以使该返回值能够表示出各个集群所需采集的各个指标项下的指标值及其对应的时间戳是什么。该map是指映射关系;该clusterid为集群标识;该list是指列表;metric为指标项;该factvalue为指标值;该timestamp为该指标值对应的时间戳。
[0141]
另外,上文轮询数据接口可以是预先依据应用场景所配置的;而且本技术不限定该轮询数据接口的工作原理,例如,当上文“目标集群对应的弹性伸缩规则”为图2所示的弹性伸缩规则,当前次轮询触发时间为10:05,而且轮询间隔为5分钟时,该轮询数据接口的工作原理至少可以包括:在[10:00,10:05]这一时间范围内按照预先设定的采样间隔(比如,30秒)获取yarn排队任务数,并判断每次采样所得的yarn排队任务数是否大于5,以便后续能够利用大于5的指标值以及该指标值对应的时间戳构成映射关系map,并向上文集群管理设备返回该映射关系,以使该集群管理设备能够利用该映射关系中数据(比如,图4所示的“timestamp-14”以及“timestamp-18”等时间戳),更新该负载类型规则项对应的缓存区域,如此能够实现针对该负载类型规则项对应的缓存区域内的存储内容进行更新处理的目的。
[0142]
实际上,为了更好地提高效率,本技术还提供了上文s4的一种可能的实施方式,在该实施方式中,当上文集群管理设备用于对若干集群进行管理,而且该若干集群包括目标集群时,s4具体可以为:若达到轮询触发条件,则调用轮询数据接口得到该若干集群对应的指标检测更新结果,并依据各集群对应的指标检测更新结果,对各集群对应的缓存空间中存储内容进行更新处理,如此能够实现借助一个接口同时获取所有具有弹性伸缩配置的集群相关数据的目的。需要说明的是,各个集群对应的指标检测更新结果的获取过程类似于上文“目标集群对应的指标检测更新结果”的获取过程,为了简要起见,在此不再赘述。
[0143]
实际上,为了更好地提高弹性伸缩决策效果,本技术还提供了存储内容的更新过程的一种可能的实施方式,在该实施方式中,对于每个集群对应的缓存空间中存储内容来说,不仅需要利用[当前次轮询触发时间-轮询间隔,当前次轮询触发时间]这一时间段内超过阈值的指标值对应的时间戳更新该存储内容,还需要进一步地循环判断更新后的存储内容中所记录的存储时间最长的时间戳是否已经超期,如果超期则直接删掉该时间戳即可;如果不超期则直接退出循环即可,如此能够借助循环确保从该缓存空间中删掉所有超期的时间戳,从而确保该缓存空间中只是存在未超期的存储内容。
[0144]
需要说明的是,为了避免数据遗漏,在一种可能的实施方式下,上段中“当前次轮询触发时间-轮询间隔”可以是上一次轮询触发时间,如此确保不发生数据遗漏的现象。
[0145]
还需要说明的是,本技术不限定上文步骤“判断更新后的存储内容中所记录的存储时间最长的时间戳是否已经超期”的实施方式,比如,其具体可以为:先利用当前时刻减去该时间戳所处缓存区域内的key中所涉及的指标检测时间段(比如,图3中“30#minute”这一字符串所表征的30分钟这一时间段或者图3中“2#hour”这一字符串所表征的2小时这一时间段等),得到时间起始点(也就是,当前时刻-指标检测时间段);再判断该时间戳是否低
于该时间起始点,若低于,则可以确定该时间戳已超期;若不低于,则可以确定该时间戳不超期。
[0146]
基于上文s4的相关内容可知,对于用于管理若干集群的集群管理设备来说,在确定达到轮询触发条件(比如,当前时刻=上一次轮询触发时间+轮询间隔)时,可以先调用轮询数据接口得到该若干集群对应的指标检测更新结果,以使该指标检测更新结果包括在[当前次轮询触发时间-轮询间隔,当前次轮询触发时间]这一时间段内超过阈值的指标值对应的时间戳;再依据各集群对应的指标检测更新结果,对各集群对应的缓存空间中存储内容进行更新处理,以使更新后的存储内容中新添了在[当前次轮询触发时间-轮询间隔,当前次轮询触发时间]这一时间段内超过阈值的指标值对应的时间戳;最后,循环判断更新后的存储内容中所记录的存储时间最长的时间戳是否已经超期,如果超期则直接删掉该时间戳即可;如果不超期则直接退出循环即可,以使最终得到的存储内容(比如,图4所示的更新后的缓存内容)能够准确地记录有[当前次轮询触发时间-指标检测时间段,当前次轮询触发时间]这一时间范围内超过阈值的指标值对应的时间戳,以便后续能够基于该存储内容中时间戳的个数,直接判定是否满足其对应的规则项(比如,图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项等)。
[0147]
s5:依据目标集群对应的缓存空间中存储内容,确定该目标集群对应的弹性伸缩决策结果,并返回继续执行上文s3。
[0148]
其中,目标集群对应的弹性伸缩决策结果用于表示是否针对该目标集群进行弹性伸缩处理;而且本技术不限定该“目标集群对应的弹性伸缩决策结果”的确定方式,比如,其具体可以为:先依据该目标集群对应的缓存空间中存储内容,判断是否满足该目标集群对应的弹性伸缩规则;若满足该弹性伸缩规则,则可以确定需要针对该目标集群进行弹性伸缩处理;若不满足该弹性伸缩规则,则可以确定无需针对该目标集群进行弹性伸缩处理。
[0149]
另外,本技术不限定上文步骤“依据该目标集群对应的缓存空间中存储内容,判断是否满足该目标集群对应的弹性伸缩规则”的实施方式,例如,当该目标集群对应的弹性伸缩规则包括负载类型规则项时,其具体可以包括下文步骤21-步骤22。
[0150]
步骤21:依据该负载类型规则项对应的缓存区域中存储内容,判断是否满足该负载类型规则项,以得到该负载类型规则项的判断结果,以使该判断结果能够表示出目标集群是否满足该负载类型规则项。
[0151]
本技术中,对于当前次轮询过程来说,当该目标集群对应的弹性伸缩规则包括负载类型规则项(比如,图2所示的“在2小时的时间内,yarn排队任务数大于5的情况发生次数大于2”这一规则项等)时,先统计该负载类型规则项对应的缓存区域中所存储的时间戳的个数;再判断该个数是否超过该负载类型规则项中所涉及的发生次数阈值(比如,2),如果超过,则可以确定该目标集群满足该负载类型规则项;如果没有超过,则可以确定该目标集群不满足该负载类型规则项。
[0152]
可见,对于任意一个负载类型规则项来说,其可以通过判断该负载类型规则项对应的缓存区域中时间戳的个数(比如,list的尺寸size)是否超过了该负载类型规则项中所涉及的次数阈值的方式,来确定是否满足该负载类型规则项。
[0153]
步骤22:依据负载类型规则项的判断结果,确定上文目标集群对应的弹性伸缩规则的判断结果,以使该判断结果能够表示出该目标集群是否满足该弹性伸缩规则。
[0154]
需要说明的是,本技术不限定步骤22的实施方式。
[0155]
基于上文步骤21至步骤22的相关内容可知,在一些应用场景(比如,负载伸缩类型等场景)下,对于一个集群对应的弹性伸缩规则来说,可以先通过该弹性伸缩规则对应的缓存空间中的存储内容,判断是否满足该弹性伸缩规则中各个负载类型规则项;再基于针对这些负载类型规则项的判断结果,综合确定该弹性伸缩规则的判断结果,以使该判断结果能够表示出该目标集群是否满足该弹性伸缩规则。
[0156]
实际上,在一些应用场景(比如,时间伸缩+负载伸缩的混合场景)下,上文目标集群对应的弹性伸缩规则中不仅涉及了负载类型规则项,可能还涉及了时间类型规则项,故为了更好地提高决策效果,本技术还提供了上文“目标集群对应的弹性伸缩决策结果”的确定过程的一种可能的实施方式,在该实施方式中,当上文“目标集群对应的弹性伸缩规则”还包括时间类型规则项(比如,图2所示的“每日的9到12点”这一规则项)时,该“目标集群对应的弹性伸缩决策结果”的确定过程,具体可以包括下文步骤31-步骤32。
[0157]
步骤31:判断当前次轮询触发时间是否位于上文时间类型规则项所表征的时间范围内,得到该时间类型规则项的判断结果。
[0158]
上文“时间类型规则项所表征的时间范围”是指由该时间类型规则项所指定的时间范围。比如,当该时间类型规则项为图2所示的“每日的9到12点”这一规则项时,该“时间类型规则项所表征的时间范围”可以为[09:00,12:00]这一时间范围。
[0159]
上文“时间类型规则项的判断结果”用于表示目标集群是否满足该时间类型规则项。
[0160]
基于上文步骤31的相关内容可知,对于当前次轮询过程来说,当该目标集群对应的弹性伸缩规则包括时间类型规则项(比如,图2所示的“每日的9到12点”这一规则项等)时,可以确定该时间类型规则项所表征的时间范围为[09:00,12:00]这一时间范围,故可以判断当前次轮询触发时间是否在[09:00,12:00]这一时间范围内,若在,则可以确定满足该时间类型规则项;若不在,则可以确定不满足该时间类型规则项。
[0161]
步骤32:依据上文时间类型规则项的判断结果以及上文目标集群对应的缓存空间中的存储内容,确定该目标集群对应的弹性伸缩决策结果。
[0162]
需要说明的是,本技术不限定步骤32的实施方式。
[0163]
基于上文步骤31至步骤32的相关内容可知,对于当前次轮询过程来说,如果该目标集群对应的弹性伸缩规则包括负载类型规则项和时间类型规则项,则可以先获取该时间类型规则项的判断结果以及该负载类型规则项的判断结果;再综合这些判断结果,综合确定该弹性伸缩规则的判断结果;最后,依据该弹性伸缩规则的判断结果,确定该目标集群对应的弹性伸缩决策结果。
[0164]
实际上,上文集群管理设备来可以借助同一个轮询机制完成所有集群的弹性伸缩决策处理。基于此可知,本技术还提供了上文s5的一种可能的实施方式,其具体可以为:依据各集群对应的缓存空间中存储内容,确定各集群对应的弹性伸缩决策结果。需要说明的是,每个集群对应的弹性伸缩决策结果的确定过程类似于上文“目标集群对应的弹性伸缩决策结果”的确定过程,为了简要起见,在此不再赘述。
[0165]
基于上文s1至s5的相关内容可知,对于本技术实施例提供的应用于集群管理设备的数据处理方法来说,在针对目标集群创建了弹性伸缩规则之后,先依据该弹性伸缩规则,
配置该目标集群对应的缓存空间;再依据该目标集群的集群标识、以及该弹性伸缩规则中的负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间,以使该缓存空间中记录有该负载类型规则项在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内所呈现的状态(比如,哪些时刻达到了该负载类型规则项所表征的负载指标条件);随后,通过轮询的方式,不断地获取该目标集群对应的指标检测更新结果,以使该指标检测更新结果用于描述该弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况,并依据该指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理,以使该存储空间中针对该指标检测时间段所记录的内容不断地进行更新,如此能够确保该缓存空间中的存储内容的实时性,以便后续能够依据该缓存空间中存储内容,实时地确定出该目标集群对应的弹性伸缩决策结果,如此能够借助一次补齐+不断轮询更新这一方式实现针对一个集群的弹性伸缩决策的目的。
[0166]
其中,因补齐时间范围是根据负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的,以使该补齐时间范围所涉及的结束时刻就是当前次轮询的开始时刻,如此能够有效地克服因规则创建时刻不属于某一次轮询触发时机而导致的不良影响(比如,因无法使用集群管理设备中已经存在的集群轮询过程而导致的资源开销),从而能够实现在不遗漏数据的前提下顺利地加入轮询过程的目的,进而有利于提高该集群管理设备针对集群的弹性伸缩决策效果。
[0167]
另外,对于一个集群来说,因在其规则创建时执行了一次数据补齐过程,以使该集群对应的缓存空间中存储有在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内的指标检测状态数据,从而使得在随后的不断轮询过程中只需获取在轮询间隔期间所呈现的指标检测状态更新情况进行存储更新即可,如此能够有效地提高针对一个集群的弹性伸缩决策效率。
[0168]
此外,对于上文集群管理设备来说,其可以在每次轮询过程中只借助一个接口(比如,轮询数据接口)获取所有集群在轮询间隔期间所呈现的指标检测状态更新情况,如此能够实现利用同一个轮询机制完成针对所有集群的弹性伸缩决策过程的目的,从而能够有效地避免针对每一个集群均配置一个轮询过程所造成的不良影响,进而有利于提高该集群管理设备针对集群的弹性伸缩决策效果。
[0169]
实际上,为了更好地提高决策效果,本技术还提供了上文数据处理方法的另一种可能的实施方式,其具体可以包括下文步骤41-步骤47。
[0170]
步骤41:在针对目标集群创建了弹性伸缩规则之后,依据该弹性伸缩规则,配置该目标集群对应的缓存空间;该弹性伸缩规则包括负载类型规则项。
[0171]
需要说明的是,步骤41的相关内容请参见上文s1的相关内容。
[0172]
步骤42:从预设缓存区域读取轮询数据接口的上一次调用时间,作为上一次轮询触发时间,并根据上文负载类型规则项所携带的时间段和该上一次轮询触发时间,确定补齐时间范围。
[0173]
其中,预设缓存区域是指预先设定的、用于缓存上文轮询数据接口的调用时间的缓存空间;而且本技术不限定该预设缓存区域的实施方式,比如,其可以采用redis进行实施。
[0174]
上文“轮询数据接口的上一次调用时间”是指在上文集群管理设备中存在的、用于针对具有弹性伸缩决策配置的集群进行集中轮询处理的最近一次轮询过程中调用该轮询数据接口的发生时刻。
[0175]
上文“补齐时间范围”的相关内容请参见上文。
[0176]
需要说明的是,本技术不限定步骤42的执行时间,比如,该步骤42的执行时间晚于上文目标集群对应的弹性伸缩规则的创建时间即可。
[0177]
步骤43:将上文目标集群的集群标识、该负载类型规则项所携带的指标项标识以及该补齐时间范围传入数据补齐接口,并调用该数据补齐接口得到该负载类型规则项在补齐时间范围内的指标检测状态数据。
[0178]
需要说明的是,步骤43的相关内容请参见上文。
[0179]
步骤44:判断是否达到轮询触发条件,若是,则执行下文步骤45-步骤47;若否,则返回继续执行上文步骤44。
[0180]
需要说明的是,步骤44的相关内容请参见上文s3的相关内容。
[0181]
步骤45:若达到轮询触发条件,则调用轮询数据接口得到目标集群对应的指标检测更新结果,并依据该目标集群对应的指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理;该指标检测更新结果用于描述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况。
[0182]
需要说明的是,步骤45的相关内容请参见上文。
[0183]
步骤46:利用上文轮询数据接口的当前次调用时间,更新上文预设缓存区域中所存储的数据。
[0184]
其中,轮询数据接口的当前次调用时间是指在当前次轮询过程中调用该轮询数据接口的发生时刻。
[0185]
基于上文步骤46的相关内容可知,对于当前次轮询过程来说,可以先获取在当前次轮询过程中调用该轮询数据接口的发生时刻,并将该发生时刻记录至预设缓存区域内,以使该预设缓存区域内所记录的时刻能够作为下一次轮询过程中所涉及的数据采集过程的起始时刻,如此能够实现借助该预设缓存区域记录每次轮询触发时间的目的,以便当想要将一个新集群加入该轮询过程时,可以直接利用该预设缓存区域所记录的时刻进行一次数据补齐处理即可。
[0186]
需要说明的是,本技术不限定步骤46的执行时间,比如,该步骤46的执行时间晚于上文步骤“调用轮询数据接口”的执行时间。
[0187]
步骤47:依据目标集群对应的缓存空间中存储内容,确定该目标集群对应的弹性伸缩决策结果,并返回继续执行上文s3。
[0188]
需要说明的是,步骤47的相关内容请参见上文s5的相关内容。
[0189]
基于上文步骤41至步骤47的相关内容可知,在一些应用场景下,对于一个集群管理设备来说,其不仅需要将所有具有弹性伸缩配置的集群所涉及的数据存储至缓存空间,还需要将针对这些集群进行集中轮询处理时所涉及的轮询触发时间实时地记录至缓存空间,如此有利于提高决策效果。
[0190]
实际上,为了更好地提高用户体验,本技术还提供了针对上文“弹性伸缩规则”的创建过程的一些可能的实施方式,下面借助
①‑③
所示的内容进行说明。
[0191]
①
在本技术中,用户可以基于自然语言配置弹性伸缩规则,在使用界面交互上采用表述式的配置方式,清晰展示规则内容和关联逻辑,如此能够有效地降低了弹性伸缩规则的配置门槛,以使用户能够轻松快速的完成规则配置。
[0192]
②
在本技术中,弹性伸缩规则可以是通过将时间伸缩类型或者负载伸缩类型进行结合所得到的,如此能够有效地消除单纯基于负载或者时间调整资源的负面效果,缩小了用户依赖经验预估带了的判断误差,提高了资源控制的安全性和有效性,使得伸缩效果更加精准的符合预期。
[0193]
③
在本技术中,用户可以分开设置弹性伸缩规则以及每个集群的弹性伸缩策略,以使该用户能够通过将某些弹性伸缩规则与某些弹性伸缩策略进行绑定或者解绑的方式调整该弹性伸缩策略,如此能够实现针对一些具有某种共同需求的弹性伸缩策略来说,只配置一条满足该需求的弹性伸缩规则即可,从而不仅能够有效地节省弹性伸缩规则的配置成本,还能够有效地提高弹性伸缩规则的复用率,如此有利于提高用户体验。
[0194]
基于本技术实施例提供的数据处理方法,本技术实施例还提供了一种数据处理装置,下面结合图5进行解释和说明。其中,图5为本技术实施例提供的一种数据处理装置的结构示意图。需要说明的是,本技术实施例提供的数据处理装置的技术详情,请参照上文数据处理方法的相关内容。
[0195]
如图5所示,本技术实施例提供的数据处理装置500,包括:
[0196]
缓存配置单元501,用于在针对目标集群创建了弹性伸缩规则之后,依据所述弹性伸缩规则,配置所述目标集群对应的缓存空间;所述弹性伸缩规则包括负载类型规则项;
[0197]
数据补齐单元502,用于依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,并将所述指标检测状态数据存储至所述目标集群对应的缓存空间;所述补齐时间范围是根据所述负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的;
[0198]
轮询更新单元503,用于判断是否达到轮询触发条件,若达到,则获取所述目标集群对应的指标检测更新结果,并依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理;所述指标检测更新结果用于描述所述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况;依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,并继续执行所述判断是否达到轮询触发条件的步骤。
[0199]
在一种可能的实施方式下,在针对目标集群创建弹性伸缩规则之前,所述集群管理设备用于利用同一个轮询机制对至少一个待管理集群进行弹性伸缩决策处理;
[0200]
所述上一次轮询触发时间是指所述轮询机制下的上一个轮询过程的触发时刻;
[0201]
所述轮询触发条件是指预先针对所述轮询机制所设定的、用于触发一次轮询过程的条件。
[0202]
在一种可能的实施方式下,所述数据补齐单元502,具体用于:将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口,并调用所述数据补齐接口得到所述负载类型规则项在补齐时间范围内的指标检测状态数据;
[0203]
所述轮询更新单元503,具体用于:调用轮询数据接口得到所述目标集群对应的指
标检测更新结果。
[0204]
在一种可能的实施方式下,所述集群管理设备用于对若干集群进行管理;所述若干集群包括所述目标集群;
[0205]
所述轮询更新单元503,具体用于:调用轮询数据接口得到所述若干集群对应的指标检测更新结果;依据各所述集群对应的指标检测更新结果,对各所述集群对应的缓存空间中存储内容进行更新处理;依据各所述集群对应的缓存空间中存储内容,确定各所述集群对应的弹性伸缩决策结果。
[0206]
在一种可能的实施方式下,所述数据处理装置500还包括:
[0207]
数据读取单元,用于在将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口之前,从预设缓存区域读取所述轮询数据接口的上一次调用时间,作为所述上一次轮询触发时间;
[0208]
时间确定单元,用于根据所述负载类型规则项所携带的时间段和所述上一次轮询触发时间,确定所述补齐时间范围。
[0209]
在一种可能的实施方式下,所述轮询更新单元503,还用于:利用所述轮询数据接口的当前次调用时间,更新预设缓存区域中所存储的数据。
[0210]
在一种可能的实施方式下,所述缓存配置单元501,具体用于:
[0211]
对所述弹性伸缩规则进行解析处理,得到规则树;所述弹性伸缩规则包括若干规则表达对象;所述若干规则表达对象包括负载类型规则项;所述规则树包括各所述规则表达对象对应的节点;
[0212]
依据所述规则树,配置所述目标集群对应的缓存空间,所述缓存空间包括各所述规则表达对象对应的缓存区域。
[0213]
在一种可能的实施方式下,所述目标集群对应的缓存空间包括所述负载类型规则项对应的缓存区域;
[0214]
所述数据补齐单元502,具体用于:将所述指标检测状态数据存储至所述负载类型规则项对应的缓存区域。
[0215]
在一种可能的实施方式下,所述弹性伸缩规则还包括时间类型规则项;
[0216]
所述轮询更新单元503,具体用于:判断当前次轮询触发时间是否位于所述时间类型规则项所表征的时间范围内,得到判断结果;依据所述判断结果以及所述目标集群对应的缓存空间中的存储内容,确定所述目标集群对应的弹性伸缩决策结果。
[0217]
基于上述数据处理装置500的相关内容可知,对于本技术提供的数据处理装置500来说,在针对目标集群创建了弹性伸缩规则之后,先依据该弹性伸缩规则,配置该目标集群对应的缓存空间;再依据该目标集群的集群标识、以及该弹性伸缩规则中的负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间,以使该缓存空间中记录有该负载类型规则项在[上一次轮询触发时间-指标检测时间段,上一次轮询触发时间]这一时间范围内所呈现的状态(比如,哪些时刻达到了该负载类型规则项中所涉及的负载指标条件);随后,通过轮询的方式,不断地获取该目标集群对应的指标检测更新结果,以使该指标检测更新结果用于描述该弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况,并依据该指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理,以
使该存储空间中针对该指标检测时间段所记录的内容不断地进行更新,如此能够确保该缓存空间中的存储内容的实时性,以便后续能够依据该缓存空间中存储内容,实时地确定出该目标集群对应的弹性伸缩决策结果,如此能够借助一次补齐+不断轮询更新这一方式实现针对一个集群的弹性伸缩决策的目的。
[0218]
另外,本技术实施例还提供了一种电子设备,所述设备包括处理器以及存储器:所述存储器,用于存储指令或计算机程序;所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行本技术实施例提供的数据处理方法的任一实施方式。
[0219]
参见图6,其示出了适于用来实现本公开实施例的电子设备600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0220]
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
[0221]
通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0222]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
[0223]
本公开实施例提供的电子设备与上述实施例提供的方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
[0224]
本技术实施例还提供了一种计算机可读介质,所述计算机可读介质中存储有指令或计算机程序,当所述指令或计算机程序在设备上运行时,使得所述设备执行本技术实施例提供的数据处理方法的任一实施方式。
[0225]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计
算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0226]
在一些实施方式中,客户端、服务器可以利用诸如http(hyper text transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0227]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0228]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备可以执行上述方法。
[0229]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0230]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0231]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬
件的方式来实现。其中,单元/模块的名称在某种情况下并不构成对该单元本身的限定。
[0232]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0233]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0234]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0235]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0236]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0237]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0238]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
技术特征:
1.一种数据处理方法,其特征在于,应用于集群管理设备,所述方法包括:在针对目标集群创建了弹性伸缩规则之后,依据所述弹性伸缩规则,配置所述目标集群对应的缓存空间;所述弹性伸缩规则包括负载类型规则项;依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,并将所述指标检测状态数据存储至所述目标集群对应的缓存空间;所述补齐时间范围是根据所述负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的;判断是否达到轮询触发条件,若达到,则获取所述目标集群对应的指标检测更新结果,并依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理;所述指标检测更新结果用于描述所述弹性伸缩规则在轮询间隔期间所呈现的指标检测状态更新情况;依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,并继续执行所述判断是否达到轮询触发条件的步骤。2.根据权利要求1所述的方法,其特征在于,在针对目标集群创建弹性伸缩规则之前,所述集群管理设备用于利用同一个轮询机制对至少一个待管理集群进行弹性伸缩决策处理;所述上一次轮询触发时间是指所述轮询机制下的上一个轮询过程的触发时刻;所述轮询触发条件是指预先针对所述轮询机制所设定的、用于触发一次轮询过程的条件。3.根据权利要求1所述的方法,其特征在于,所述依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,包括:将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口,并调用所述数据补齐接口得到所述负载类型规则项在补齐时间范围内的指标检测状态数据;所述获取所述目标集群对应的指标检测更新结果,包括:调用轮询数据接口得到所述目标集群对应的指标检测更新结果。4.根据权利要求3所述的方法,其特征在于,所述集群管理设备用于对若干集群进行管理;所述若干集群包括所述目标集群;所述调用轮询数据接口得到所述目标集群对应的指标检测更新结果,包括:调用轮询数据接口得到所述若干集群对应的指标检测更新结果;所述依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理,包括:依据各所述集群对应的指标检测更新结果,对各所述集群对应的缓存空间中存储内容进行更新处理;所述依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,包括:依据各所述集群对应的缓存空间中存储内容,确定各所述集群对应的弹性伸缩决策结果。
5.根据权利要求3所述的方法,其特征在于,所述将所述目标集群的集群标识、所述负载类型规则项所携带的指标项标识以及所述补齐时间范围传入数据补齐接口之前,所述方法还包括:从预设缓存区域读取所述轮询数据接口的上一次调用时间,作为所述上一次轮询触发时间;根据所述负载类型规则项所携带的时间段和所述上一次轮询触发时间,确定所述补齐时间范围。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:利用所述轮询数据接口的当前次调用时间,更新预设缓存区域中所存储的数据。7.根据权利要求1所述的方法,其特征在于,所述依据针对目标集群所创建的弹性伸缩规则,配置所述目标集群对应的缓存空间,包括:对所述弹性伸缩规则进行解析处理,得到规则树;所述弹性伸缩规则包括若干规则表达对象;所述若干规则表达对象包括负载类型规则项;所述规则树包括各所述规则表达对象对应的节点;依据所述规则树,配置所述目标集群对应的缓存空间,所述缓存空间包括各所述规则表达对象对应的缓存区域。8.根据权利要求1所述的方法,其特征在于,所述目标集群对应的缓存空间包括所述负载类型规则项对应的缓存区域;所述将所述指标检测状态数据存储至所述目标集群对应的缓存空间,包括:将所述指标检测状态数据存储至所述负载类型规则项对应的缓存区域。9.根据权利要求1-8任一项所述的方法,其特征在于,所述弹性伸缩规则还包括时间类型规则项;所述方法还包括:判断当前次轮询触发时间是否位于所述时间类型规则项所表征的时间范围内,得到判断结果;所述依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,包括:依据所述判断结果以及所述目标集群对应的缓存空间中的存储内容,确定所述目标集群对应的弹性伸缩决策结果。10.一种数据处理装置,其特征在于,包括:缓存配置单元,用于在针对目标集群创建了弹性伸缩规则之后,依据所述弹性伸缩规则,配置所述目标集群对应的缓存空间;所述弹性伸缩规则包括负载类型规则项;数据补齐单元,用于依据所述目标集群的集群标识以及所述负载类型规则项所携带的指标项标识,获取所述负载类型规则项在补齐时间范围内的指标检测状态数据,并将所述指标检测状态数据存储至所述目标集群对应的缓存空间;所述补齐时间范围是根据所述负载类型规则项所携带的指标检测时间段和上一次轮询触发时间所确定的;轮询更新单元,用于判断是否达到轮询触发条件,若达到,则获取所述目标集群对应的指标检测更新结果,并依据所述目标集群对应的指标检测更新结果,对所述目标集群对应的缓存空间中存储内容进行更新处理;所述指标检测更新结果用于描述所述弹性伸缩规则
在轮询间隔期间所呈现的指标检测状态更新情况;依据所述目标集群对应的缓存空间中存储内容,确定所述目标集群对应的弹性伸缩决策结果,并继续执行所述判断是否达到轮询触发条件的步骤。11.一种电子设备,其特征在于,所述设备包括:处理器和存储器;所述存储器,用于存储指令或计算机程序;所述处理器,用于执行所述存储器中的所述指令或计算机程序,以使得所述电子设备执行权利要求1-9任一项所述的方法。12.一种计算机可读介质,其特征在于,所述计算机可读介质中存储有指令或计算机程序,当所述指令或计算机程序在设备上运行时,使得所述设备执行权利要求1-9任一项所述的方法。
技术总结
本申请公开了一种数据处理方法、装置、电子设备、计算机可读介质,该方法包括:在针对目标集群创建了弹性伸缩规则之后,先依据该弹性伸缩规则,配置该目标集群对应的缓存空间;再依据该目标集群的集群标识、以及该弹性伸缩规则中的负载类型规则项所携带的指标项标识,获取该负载类型规则项在补齐时间范围内的指标检测状态数据,并将该指标检测状态数据存储至该目标集群对应的缓存空间;随后,通过轮询的方式不断地获取该目标集群在轮询间隔期间所对应的指标检测更新结果,并依据该指标检测更新结果,对该目标集群对应的缓存空间中存储内容进行更新处理,如此能够借助一次补齐+不断轮询更新这一方式实现针对一个集群的弹性伸缩决策的目的。缩决策的目的。缩决策的目的。
技术研发人员:孙磊磊 赵思颖 罗旋
受保护的技术使用者:北京火山引擎科技有限公司
技术研发日:2023.03.31
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
