一种告警服务节点的弹性扩缩容方法、装置转让专利

申请号 : CN201911356632.0

文献号 : CN113037528B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 冯涛宫钦

申请人 : 中国移动通信集团山东有限公司中国移动通信集团有限公司

摘要 :

本发明实施例提供的一种告警服务节点的弹性扩缩容的方法、装置的技术方案中,根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率,根据获取的所述告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数或者实际缩减节点数,并通过根据所述告警产生速率是否大于所述告警预计处理速率的判断结果,对所述告警服务节点的数量进行弹性扩缩容,从而避免了告警服务节点在空闲时间运行,造成了硬件资源的浪费的问题。

权利要求 :

1.一种告警服务节点的弹性扩缩容方法,其特征在于,包括:根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率;

根据获取的告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率;

判断所述告警产生速率是否大于所述告警预计处理速率;

若判断出所述告警产生速率大于所述告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数;

根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容。

2.根据权利要求1所述的方法,其特征在于,还包括:若判断出所述告警产生速率小于所述告警预计处理速率,判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消息处理数量;

若判断出获取的告警消息积压数量小于或者等于获取的预设第一时间段内的告警消息处理数量,则根据所述告警预计处理速率、所述告警产生速率以及所述告警服务节点处理速率,计算出实际缩减节点数;

根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容。

3.根据权利要求2所述的方法,其特征在于,还包括:若判断出获取的告警消息积压数量大于获取的预设第一时间段内的告警消息处理数量,将所述告警服务节点的数量加1,并继续执行所述根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率的步骤。

4.根据权利要求2所述的方法,其特征在于,在所述若判断出所述告警产生速率小于所述告警预计处理速率,判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消息处理数量之前,还包括:根据采集的告警消息产生数量与获取的告警消息处理数量,计算告警消息积压数量。

5.根据权利要求1所述的方法,其特征在于,所述根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数,包括:通过公式:扩展节点数=(告警产生速率‑告警预计处理速率)/告警服务节点处理速率,计算出扩展节点数;

将所述扩展节点数分解为扩展节点整数和扩展节点小数;

判断所述扩展节点小数是否大于或者等于预设第一阈值;

若判断出所述扩展节点小数大于或者等于预设第一阈值,则将所述扩展节点小数清零,且将所述扩展节点整数加1;

将加1后的所述扩展节点整数确定为实际扩展节点数;

若判断出所述扩展节点小数小于预设第一阈值,则将所述扩展节点小数清零;

将所述扩展节点整数确定为实际扩展节点数。

6.根据权利要求2所述的方法,其特征在于,所述根据所述告警预计处理速率、所述告警产生速率以及所述告警服务节点处理速率,计算出实际缩减节点数,包括:通过公式:缩减节点数=(告警预计处理速率‑告警产生速率)/告警服务节点处理速率,计算出缩减节点数;

将所述缩减节点数分解为缩减节点整数和缩减节点小数;

判断所述缩减节点小数是否大于或者等于预设第二阈值;

若判断出所述缩减节点小数大于或者等于预设第二阈值,则将所述缩减节点小数清零,且将所述缩减节点整数加1;

将加1后的所述缩减节点整数确定为实际缩减节点数;

若判断出所述缩减节点小数小于预设第二阈值,则将所述缩减节点小数清零;

将所述缩减节点整数确定为实际缩减节点数。

7.根据权利要求3所述的方法,其特征在于,在所述根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容之前,还包括:判断所述实际扩展节点数是否大于或者等于预设弹性节点数;

若判断出所述实际扩展节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩容;

若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性扩容,则继续执行所述根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容的步骤;

或者,在所述根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容之前,还包括:

判断所述实际缩减节点数是否大于或者等于预设弹性节点数;

若判断出所述实际缩减节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性缩容;

若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性缩容,则继续执行所述根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容的步骤;

或者,在所述将所述告警服务节点的数量加1之前,还包括:判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩容;

若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性扩容,则继续执行所述将所述告警服务节点的数量加1的步骤。

8.一种告警服务节点的弹性扩缩容装置,其特征在于,所述装置包括:第一计算模块,用于根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率;根据获取的所述告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率;若判断出所述告警产生速率大于所述告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数;

判断模块,用于判断所述告警产生速率是否大于所述告警预计处理速率;

节点数处理模块,用于根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容。

9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任意一项所述的告警服务节点的弹性扩缩容方法。

10.一种服务器,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求1至7任意一项所述的告警服务节点的弹性扩缩容方法的步骤。

说明书 :

一种告警服务节点的弹性扩缩容方法、装置

【技术领域】

[0001] 本发明涉及通信网络监控领域,具体地涉及一种告警服务节点的弹性扩缩容方法、装置。
【背景技术】
[0002] 由于通信设备故障存在不确定性,故障管理系统运行中告警上报数量的波动比较大,特别是发生告警风暴时,告警量在短时间会发生爆发式增长。系统日常运行中,因为告
警上报数波动大,目前系统在正常情况下能够快速处理故障告警信息,一旦出现告警上报
数量井喷时,因告警上报数据超过故障管理管理系统承载能力时就会出现告警消息积压、
告警处理延时的情况。通过横向扩展告警处理服务节点可以很大程度上解决这个问题,而
在相关技术中,通常是利用经验预估或者压力测试情况来决定告警服务节点的数量,系统
自身不能自动伸缩调整。因此如何避免告警服务节点在空闲时间运行,造成了硬件资源的
浪费的问题成为了亟需解决的问题。
【发明内容】
[0003] 有鉴于此,本发明提供一种告警服务节点的弹性扩缩容方法、装置,能够避免告警服务节点在空闲时间运行,造成了硬件资源的浪费的问题。
[0004] 一方面,本发明实施例提供了一种告警服务节点的弹性扩缩容方法,包括:
[0005] 根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率;
[0006] 根据获取的告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率;
[0007] 判断所述告警产生速率是否大于所述告警预计处理速率;
[0008] 若判断出所述告警产生速率大于所述告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数;
[0009] 根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容。
[0010] 可选地,若判断出所述告警产生速率小于所述告警预计处理速率,判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消息处理数量;
[0011] 若判断出获取的告警消息积压数量小于或者等于获取的预设第一时间段内的告警消息处理数量,则根据所述告警预计处理速率、所述告警产生速率以及所述告警服务节
点处理速率,计算出实际缩减节点数;
[0012] 根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容。
[0013] 可选地,若判断出获取的告警消息积压数量大于获取的预设第一时间段内的告警消息处理数量,将所述告警服务节点的数量加1,并继续执行所述根据采集的预设第一时间
段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率的步骤。
[0014] 可选地,在所述若判断出所述告警产生速率小于所述告警预计处理速率,判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消息处理数量
之前,还包括:
[0015] 根据采集的告警消息产生数量与获取的告警消息处理数量,计算告警消息积压数量。
[0016] 可选地,所述根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数,包括:
[0017] 通过公式:扩展节点数=(告警产生速率‑告警预计处理速率)/告警服务节点处理速率,计算出扩展节点数;
[0018] 将所述扩展节点数分解为扩展节点整数和扩展节点小数;
[0019] 判断所述扩展节点小数是否大于或者等于预设第一阈值;
[0020] 若判断出所述扩展节点小数大于或者等于预设第一阈值,则将所述扩展节点小数清零,且将所述扩展节点整数加1;
[0021] 将加1后的所述扩展节点整数确定为实际扩展节点数;
[0022] 若判断出所述扩展节点小数小于预设第一阈值,则将所述扩展节点小数清零;
[0023] 将所述扩展节点整数确定为实际扩展节点数。
[0024] 可选地,所述根据所述告警预计处理速率、所述告警产生速率以及所述告警服务节点处理速率,计算出实际缩减节点数,包括:
[0025] 通过公式:缩减节点数=(告警预计处理速率‑告警产生速率)/告警服务节点处理速率,计算出缩减节点数;
[0026] 将所述缩减节点数分解为缩减节点整数和缩减节点小数;
[0027] 判断所述缩减节点小数是否大于或者等于预设第二阈值;
[0028] 若判断出所述缩减节点小数大于或者等于预设第二阈值,则将所述缩减节点小数清零,且将所述缩减节点整数加1;
[0029] 将加1后的所述缩减节点整数确定为实际缩减节点数;
[0030] 若判断出所述缩减节点小数小于预设第二阈值,则将所述缩减节点小数清零;
[0031] 将所述缩减节点整数确定为实际缩减节点数。
[0032] 可选地,在所述根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容之前,还包括:
[0033] 判断所述实际扩展节点数是否大于或者等于预设弹性节点数;
[0034] 若判断出所述实际扩展节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩容;
[0035] 若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性扩容,则继续执行所述根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容的步骤;
[0036] 或者,在所述根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容之前,还包括:
[0037] 判断所述实际缩减节点数是否大于或者等于预设弹性节点数;
[0038] 若判断出所述实际缩减节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性缩容;
[0039] 若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性缩容,则继续执行所述根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容的步骤;
[0040] 或者,在所述将所述告警服务节点的数量加1之前,还包括:
[0041] 判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩容;
[0042] 若判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性扩容,则继续执行所述将所述告警服务节点的数量加1的步骤。
[0043] 另一方面,本发明实施例提供了一种告警服务节点的弹性扩缩容装置,所述装置包括:
[0044] 第一计算模块,用于根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率;根据获取的所述告警服务节点的告警服务节点处理速
率以及获取的告警服务节点的数量,计算出告警预计处理速率;若判断出所述告警产生速
率大于所述告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述
告警服务节点处理速率,计算出实际扩展节点数;
[0045] 判断模块,用于判断所述告警产生速率是否大于所述告警预计处理速率;
[0046] 节点数处理模块,用于根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容。
[0047] 另一方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的告警服务节点的弹性扩缩容
方法。
[0048] 另一方面,本发明实施例提供了一种服务器,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理
器加载并执行上述的告警服务节点的弹性扩缩容方法的步骤。
[0049] 本发明实施例提供的技术方案中,根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率,根据获取的所述告警服务节点的告警服务节点处
理速率以及获取的告警服务节点的数量,计算出告警预计处理速率,根据所述告警产生速
率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数或者
实际缩减节点数,并通过根据所述告警产生速率是否大于所述告警预计处理速率的判断结
果,对所述告警服务节点的数量进行弹性扩缩容,从而避免了告警服务节点在空闲时间运
行,造成了硬件资源的浪费的问题。
【附图说明】
[0050] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域
普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附
图。
[0051] 图1是一种Kubernetes的弹性扩容原理图;
[0052] 图2是本发明一实施例所提供的一种告警服务节点的弹性扩缩容方法的流程图;
[0053] 图3是本发明又一实施例所提供的一种告警服务节点的弹性扩缩容方法的流程图;
[0054] 图4是本发明一实施例所提供的一种告警服务节点的弹性扩缩容装置的结构示意图;
[0055] 图5为本发明实施例提供的一种服务器的示意图。【具体实施方式】
[0056] 为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
[0057] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其
它实施例,都属于本发明保护的范围。
[0058] 在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”
也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0059] 应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙
这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0060] 由于本发明实施例涉及Kubernetes的弹性扩容(HPA)的应用,为了便于理解,下面先对本发明实施例Kubernetes的HPA等相关概念进行介绍。
[0061] 图1为一种Kubernetes的弹性扩容原理图,如图1所示,在Kubernetes中,Pod的负载是通过Heapster进行采集的,或者可通过Metrics Server进行采集,HPA Controller通
过定期查询Pod当前系统的负载来自动水平扩容,如果系统负载超过预定值,就开始增加
Pod的个数,如果低于某个值,就自动减少Pod的个数。其中,定期轮询的时间通过–
horizontal‑pod‑autoscaler‑sync‑period选项来设置,默认的时间为30秒。Kubernetes将
资源指标包括核心指标(Core metrics)和自定义指标(Custom Metrics),其中Core 
metrics由metrics‑server提供API metrics.k8s.io,仅提供Node和Pod的CPU和内存使用
情况。Custom Metrics由Prometheus Adapter提供API custom.metrics.k8s.io,由此可支
持任意Prometheus采集到的指标。
[0062] 在相关技术中,通常很难通过监控Pod的内存和CPU,获取故障管理系统实时告警处理服务状态,从而很难通过Core metrics(核心指标)监控,从而实现根据告警消息处理
服务状态进行节点弹性伸缩的目的。本发明通过将故障处理指标以Custom Metrics方式传
入,利用告警服务节点伸缩规则算法计算节点伸缩数量,实现HpaController,从而实现基
于业务指标实现服务节点弹性伸缩。一方面,在告警风暴时保障告警及时处理;另一方面,
在告警闲时,避免硬件资源浪费。在具体实现方式中,通过利用上层业务代码,调用
Kubernetes API,实现对告警服务节点的弹性扩缩容。
[0063] 图2为本发明一实施例提供的一种告警服务节点的弹性扩缩容方法的流程图,如图2所示,该方法包括:
[0064] 步骤101、根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率。
[0065] 步骤102、根据获取的告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率。
[0066] 步骤103、判断告警产生速率是否大于告警预计处理速率。
[0067] 步骤104、若判断出告警产生速率大于告警预计处理速率,根据告警产生速率、告警预计处理速率以及告警服务节点处理速率,计算出实际扩展节点数。
[0068] 步骤105、根据实际扩展节点数对告警服务节点的数量进行弹性扩容。
[0069] 本发明实施例提供的技术方案中,根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率,根据获取的告警服务节点的告警服务节点处理速
率以及获取的告警服务节点的数量,计算出告警预计处理速率,根据告警产生速率、告警预
计处理速率以及告警服务节点处理速率,计算出实际扩展节点数或者实际缩减节点数,并
通过根据告警产生速率是否大于告警预计处理速率的判断结果,对告警服务节点的数量进
行弹性扩缩容,从而避免了告警服务节点在空闲时间运行,造成了硬件资源的浪费的问题。
[0070] 图3为本发明又一实施例提供的一种告警服务节点的弹性扩缩容方法的流程图,该告警服务节点的弹性扩缩容方法基于告警服务节点的弹性扩缩容系统实现,其中,告警
服务节点的弹性扩缩容系统可包括多个告警服务节点。如图3所示,该方法包括:
[0071] 步骤201、根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率。
[0072] 本发明实施例中,各步骤由服务器执行。
[0073] 本发明实施例中,预设第一时间段为60秒。通过设定预设第一时间段为60秒,可避免瞬间的告警消息波动对计算弹性扩容的告警服务节点的数量造成影响。
[0074] 本发明实施例中,采集到的告警消息可存储于告警消息队列中,通过从告警消息队列中获取到预设第一时间段内的告警消息产生数量。例如通过告警消息队列采集到60秒
内告警消息产生数量为6000条,因此计算出告警产生速率=6000条/60秒=100条/秒,即每
秒产生100条告警消息。
[0075] 步骤202、根据获取的告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率。
[0076] 本发明实施例中,该系统包括多个告警服务节点,其中,每个告警服务节点的处理速率是根据服务器的配置有关,且每个告警服务节点的处理速率是相同的,可根据日常积
累的经验值获取,例如,告警处理服务节点处理速率包括告警服务节点在进行压力测试稳
定运行时的处理速率。例如,告警服务节点处理速率是600条/秒,系统包括2个告警服务节
点,从而可计算出告警预计处理速率=600条/秒*2=1200条/秒。
[0077] 步骤203、判断告警产生速率是否大于告警预计处理速率,若是,执行步骤204;若否,执行步骤206。
[0078] 本发明实施例中,若判断出告警产生速率大于告警预计处理速率,表明需要增加告警服务节点的数量,避免部署的告警服务节点的数量不足时,在产生告警风暴时会发生
告警消息积压,导致后续业务处理延迟的问题,因此执行步骤204计算出需要增加的实际扩
展节点数;若判断出告警产生速率小于告警预计处理速率,表明需要减少告警服务节点的
数量,避免告警服务节点在空闲时间运行,造成了硬件资源的浪费。
[0079] 本发明实施例中,进一步地,步骤203还包括:若判断出告警产生速率等于告警预计处理速率,继续执行步骤201。
[0080] 本发明实施例中,若判断出告警产生速率等于告警预计处理速率,表明告警消息的产生数量与告警消息的处理数量相同,服务器能够正常处理告警消息,不会发生告警消
息积压,导致后续业务处理延迟的问题,因此不需要增加或者减少告警服务节点的数量。
[0081] 步骤204、根据告警产生速率、告警预计处理速率以及告警服务节点处理速率,计算出实际扩展节点数。
[0082] 本发明实施例中,步骤204,具体包括:
[0083] 步骤2041、通过公式:扩展节点数=(告警产生速率‑告警预计处理速率)/告警服务节点处理速率,计算出扩展节点数。
[0084] 本发明实施例中,例如计算出告警产生速率为2000条/秒,告警预计处理速率为1200条/秒,告警服务节点处理速率600条/秒,从而计算出扩展节点数=(2000‑1200)/600
≈1.3。
[0085] 步骤2042、将扩展节点数分解为扩展节点整数和扩展节点小数。
[0086] 本发明实施例中,例如计算出的扩展节点数为1.3,将1.3分解为1和0.3,其中扩展节点整数为1,扩展节点小数为0.3。
[0087] 步骤2043、判断扩展节点小数是否大于或者等于预设第一阈值,若是,执行步骤2044;若否,执行步骤2046。
[0088] 本发明实施例中,例如,预设第一阈值为0.2。若判断出扩展节点小数大于或者等于预设第一阈值,表明需要在扩展节点整数对应的告警服务节点的数量的基础上再增加1
个告警服务节点;若判断出扩展节点小数小于预设第一阈值,表明不需要在扩展节点整数
对应的告警服务节点的数量的基础上增加1个告警服务节点。
[0089] 步骤2044、将扩展节点小数清零,且将扩展节点整数加1。
[0090] 本发明实施例中,例如,扩展节点整数为1,扩展节点小数为0.3,由于扩展节点小数0.3大于0.2,因此将扩展节点小数清零,且将扩展节点整数加1之后,加1后的扩展节点整
数为2。
[0091] 步骤2045、将加1后的扩展节点整数确定为实际扩展节点数。
[0092] 本发明实施例中,加1后的扩展节点整数为2,因此实际需要增加的告警服务节点的数量为2个,通过增加告警服务节点的数量之后,能够提高告警处理速率,有效避免告警
风暴时出现告警消息积压的问题。
[0093] 步骤2046、将扩展节点小数清零。
[0094] 本发明实施例中,例如,扩展节点整数为1,扩展节点小数为0.1,由于扩展节点小数0.1小于0.2,因此将扩展节点小数清零。
[0095] 步骤2047、将扩展节点整数确定为实际扩展节点数。
[0096] 本发明实施例中,扩展节点整数为1,因此实际需要增加的告警服务节点的数量为1个。
[0097] 步骤205、根据实际扩展节点数对告警服务节点的数量进行弹性扩容。
[0098] 本发明实施例中,如下表1所示,原有的告警服务器节点的数量为1个,当计算出实际扩展节点数为2个时,需要增加2个告警服务节点。如下表2所示,此时告警服务器节点的
数量为3个,通过增加告警服务节点的数量之后,能够提高告警处理速率,有效避免告警风
暴时出现告警消息积压的问题。
[0099] 表1
[0100]
[0101] 表2
[0102]
[0103] 本发明实施例中,在步骤205之前,还包括:
[0104] 步骤205a、判断实际扩展节点数是否大于或者等于预设弹性节点数,若是,执行步骤205b;若否,执行步骤201。
[0105] 本发明实施例中,例如,预设弹性节点数为1个。若判断出实际扩展节点数大于或者等于预设弹性节点数,表明可进行弹性扩容;若判断出实际扩展节点数小于预设弹性节
点数,表明不能进行弹性扩容。例如计算出的实际扩展节点数为0个,则不能进行弹性扩容。
[0106] 步骤205b、判断告警服务节点的数量在预设第二时间段内是否进行过弹性扩容,若是,执行步骤201;若否,执行步骤205。
[0107] 本发明实施例中,例如,预设第二时间段为5分钟。通过设置预设第二时间段为5分钟,为了避免节点重复扩展或收缩,当前为每5分钟触发一次Kubernetes的弹性扩容。若判
断出告警服务节点的数量在预设时间内进行过弹性扩容,表明已经进行过弹性扩容,若重
复进行弹性扩容,可能会导致增加过多的告警服务节点,从而造成硬件资源的浪费;若判断
出告警服务节点的数量在预设时间内未进行过弹性扩容,表明可执行步骤205,根据实际扩
展节点数对告警服务节点的数量进行弹性扩容。
[0108] 步骤206、根据采集的告警消息产生数量与获取的告警消息处理数量,计算告警消息积压数量。
[0109] 本发明实施例中,告警消息产生数量可从告警消息队列中获取。告警消息积压数量包括告警消息被延迟处理的数量。当告警消息产生之后,会存储在告警消息队列中,等待
被告警服务节点处理。例如,从告警消息队列中获取到告警消息产生数量为10000条,告警
消息处理数量为3000条,从而计算出告警消息积压数量为7000条。
[0110] 本发明实施例中,可选地,还包括:根据获取的预设时间段内的告警消息处理数量以及预设时间段,可计算出告警实际处理速率。
[0111] 本发明实施例中,预设第一时间段为60秒。通过设定预设第一时间段为60秒,可避免瞬间的告警消息波动对计算弹性扩容的告警服务节点的数量造成影响。
[0112] 步骤207、判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消息处理数量,若是,执行步骤208;若否,执行步骤210。
[0113] 本发明实施例中,例如,预设第一时间段为60秒。若判断出告警消息积压数量小于获取的预设时间段内的告警消息处理数量,表明在预设时间段内,积压的告警消息都能够
被处理;若判断出告警消息积压数量大于获取的预设时间段内的告警消息处理数量,表明
在预设时间段内,积压的告警消息不能被处理,会导致后续业务处理延迟的问题,因此需要
增加告警服务节点的数量。
[0114] 步骤208、根据告警预计处理速率、告警产生速率以及告警服务节点处理速率,计算出实际缩减节点数。
[0115] 本发明实施例中,步骤208,具体包括:
[0116] 步骤2081、通过公式:缩减节点数=(告警预计处理速率‑告警产生速率)/告警服务节点处理速率,计算出缩减节点数。
[0117] 本发明实施例中,例如计算出告警产生速率为1000条/秒,告警预计处理速率为2000条/秒,告警服务节点处理速率600条/秒,从而计算出扩展节点数=(2000‑1000)/600
≈1.6。
[0118] 步骤2082、将缩减节点数分解为缩减节点整数和缩减节点小数。
[0119] 本发明实施例中,例如计算出的扩展节点数为1.6,将1.6分解为1和0.6,其中扩展节点整数为1,扩展节点小数为0.6。
[0120] 步骤2083、判断缩减节点小数是否大于或者等于预设第二阈值,若是,执行步骤2084;若否,执行步骤2086。
[0121] 本发明实施例中,例如,预设第二阈值为0.8。若判断出缩减节点小数大于或者等于预设第二阈值,表明需要在缩减节点整数对应的告警服务节点的数量的基础上再缩减1
个告警服务节点;若判断出缩减节点小数小于预设第一阈值,表明不需要在缩减节点整数
对应的告警服务节点的数量的基础上再缩减1个告警服务节点。
[0122] 步骤2084、将缩减节点小数清零,且将缩减节点整数加1。
[0123] 本发明实施例中,例如,缩减节点整数为1,缩减节点小数为0.9,由于缩减节点小数0.9大于0.8,因此将缩减节点小数清零,且将缩减节点整数加1之后,加1后的缩减节点整
数为2。
[0124] 步骤2085、将加1后的缩减节点整数确定为实际缩减节点数。
[0125] 本发明实施例中,加1后的缩减节点整数为2,因此实际需要减少的告警服务节点的数量为2个,通过减少告警服务节点的数量,能够避免告警服务节点在空闲时间运行,造
成了硬件资源的浪费的问题,从而提高了系统稳定性,提高了硬件资源利用率。
[0126] 步骤2086、将缩减节点小数清零。
[0127] 本发明实施例中,例如,缩减节点整数为1,缩减节点小数为0.6,由于缩减节点小数0.6小于0.2,因此将缩减节点小数清零。
[0128] 步骤2087、将缩减节点整数确定为实际缩减节点数。
[0129] 本发明实施例中,扩展节点整数为1,因此实际需要减少的告警服务节点的数量为1个。
[0130] 步骤209、根据实际缩减节点数对告警服务节点的数量进行弹性缩容。
[0131] 本发明实施例中,如上表2所示,原有的告警服务器节点的数量为3个,当计算出的实际缩减节点数为1个时,需要减少1个告警服务节点,如下表3所示,此时告警服务器节点
的数量为2个。
[0132] 表3
[0133]
[0134] 本发明实施例中,在步骤209之前,还包括:
[0135] 步骤209a、判断实际缩减节点数是否大于或者等于预设弹性节点数,若是,执行步骤209b;若否,执行步骤201。
[0136] 本发明实施例中,例如,预设弹性节点数为1个。若判断出实际缩减节点数大于或者等于预设弹性节点数,表明可进行弹性缩容;若判断出实际缩减节点数小于预设弹性节
点数,表明不能进行弹性缩容。例如计算出的实际缩减节点数为0个,则不能进行弹性缩容。
[0137] 步骤209b、判断告警服务节点的数量在预设第二时间段内是否进行过弹性缩容,若是,执行步骤201;若否,执行步骤209。
[0138] 本发明实施例中,例如,预设第二时间段为5分钟。若判断出告警服务节点的数量在预设时间内进行过弹性缩容,表明已经进行过弹性缩容,若重复进行弹性缩容,可能会导
致减少过多的告警服务节点,从而导致告警消息积压数量增多,出现业务延迟处理的问题;
若判断出告警服务节点的数量在预设时间内未进行过弹性缩容,表明可执行步骤209,根据
实际缩减节点数对告警服务节点的数量进行弹性缩容。
[0139] 步骤210、将告警服务节点的数量加1,并继续执行步骤201。
[0140] 本发明实施例中,由于告警消息积压数量大于预设时间段内的告警消息处理数量,导致在预设时间段内,积压的告警消息不能被处理,需要增加告警服务节点的数量。
[0141] 本发明实施例中,在步骤210之前,还包括:
[0142] 判断告警服务节点的数量在预设第二时间段内是否进行过弹性缩容,若是,执行步骤201;若否,执行步骤210。
[0143] 本发明实施例中,若判断出告警服务节点的数量在预设时间内进行过弹性扩容,表明已经进行过弹性扩容,若重复进行弹性扩容,可能会导致增加过多的告警服务节点,从
而造成硬件资源的浪费;若判断出告警服务节点的数量在预设时间内未进行过弹性扩容,
表明可执行步骤210,根据实际扩展节点数对告警服务节点的数量进行弹性扩容。
[0144] 本发明实施例提供的技术方案中,根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率,根据获取的告警服务节点的告警服务节点处理速
率以及获取的告警服务节点的数量,计算出告警预计处理速率,根据告警产生速率、告警预
计处理速率以及告警服务节点处理速率,计算出实际扩展节点数或者实际缩减节点数,并
通过根据告警产生速率是否大于告警预计处理速率的判断结果,对告警服务节点的数量进
行弹性扩缩容,从而避免了告警服务节点在空闲时间运行,造成了硬件资源的浪费的问题。
[0145] 本发明实施例提供的技术方案中,告警消息的实时处理情况,选取核心业务指标结合Kubernetes弹性扩展方案,提高资源利用率,避免了原有分布式集群方案带来的硬件
资源浪费的情况,解决了根据实际业务指标进行弹性扩展解决了原有集群方案峰值无法预
估的问题。在告警消息积压时进行弹性扩容,解决了原有集群方案节点不够时消息积压的
问题;在告警消息较少时进行弹性缩容,解决了原有集群方案为保证峰值处理部署过多节
点带来的硬件资源浪费的问题。
[0146] 图4是本发明一实施例所提供的一种告警服务节点的弹性扩缩容装置的结构示意图,如图4所示,该装置包括:第一计算模块11、第一判断模块12以及节点数处理模块13。
[0147] 第一计算模块11用于根据采集的预设第一时间段内的告警消息产生数量以及预设第一时间段,计算出告警产生速率。
[0148] 第一计算模块11还用于根据获取的告警服务节点的告警服务节点处理速率以及获取的告警服务节点的数量,计算出告警预计处理速率。
[0149] 第一判断模块12用于判断所述告警产生速率是否大于所述告警预计处理速率。
[0150] 第一计算模块11还用于若第一判断模块12判断出所述告警产生速率大于所述告警预计处理速率,根据所述告警产生速率、所述告警预计处理速率以及所述告警服务节点
处理速率,计算出实际扩展节点数。
[0151] 节点数处理模块13用于根据所述实际扩展节点数对所述告警服务节点的数量进行弹性扩容。
[0152] 本发明实施例中,该装置还包括:第二判断模块14和第二计算模块15。
[0153] 第二判断模块14还用于若判断出所述告警产生速率是否小于所述告警预计处理速率,判断获取的告警消息积压数量是否小于或者等于获取的预设第一时间段内的告警消
息处理数量。
[0154] 第二计算模块15用于若第二判断模块14判断出获取的告警消息积压数量小于或者等于获取的预设第一时间段内的告警消息处理数量,则根据所述告警预计处理速率、所
述告警产生速率以及所述告警服务节点处理速率,计算出实际缩减节点数。
[0155] 节点数处理模块13还用于根据所述实际缩减节点数对所述告警服务节点的数量进行弹性缩容。
[0156] 本发明实施例中,该装置还包括:
[0157] 节点数处理模块13还用于若第二判断模块14判断出获取的告警消息积压数量大于获取的预设第一时间段内的告警消息处理数量,将所述告警服务节点的数量加1,并触发
第一计算模块11继续执行所述根据采集的预设第一时间段内的告警消息产生数量以及预
设第一时间段,计算出告警产生速率的步骤。
[0158] 本发明实施例中,该装置还包括:
[0159] 第二计算模块15还用于根据采集的告警消息产生数量与获取的告警消息处理数量,计算告警消息积压数量。
[0160] 本发明实施例中,该装置的第一计算模块11具体包括:计算子模块111、分解子模块112、判断子模块113、处理子模块114以及确定子模块115。
[0161] 计算子模块111用于通过公式:扩展节点数=(告警产生速率‑告警预计处理速率)/告警服务节点处理速率,计算出扩展节点数。
[0162] 分解子模块112用于将所述扩展节点数分解为扩展节点整数和扩展节点小数。
[0163] 判断子模块113用于判断所述扩展节点小数是否大于或者等于预设第一阈值。
[0164] 处理子模块114用于若判断子模块113判断出所述扩展节点小数大于或者等于预设第一阈值,则将所述扩展节点小数清零,且将所述扩展节点整数加1。
[0165] 确定子模块115用于将加1后的所述扩展节点整数确定为实际扩展节点数。
[0166] 处理子模块114还用于若判断子模块113判断出所述扩展节点小数小于预设第一阈值,则将所述扩展节点小数清零。
[0167] 确定子模块115还用于将所述扩展节点整数确定为实际扩展节点数。
[0168] 本发明实施例中,该装置的第二计算模块15具体包括:计算子模块151、分解子模块152、判断子模块153、处理子模块154以及确定子模块155。
[0169] 计算子模块151用于通过公式:缩减节点数=(告警预计处理速率‑告警产生速率)/告警服务节点处理速率,计算出缩减节点数。
[0170] 分解子模块152用于将所述缩减节点数分解为缩减节点整数和缩减节点小数。
[0171] 判断子模块153用于判断所述缩减节点小数是否大于或者等于预设第二阈值。
[0172] 处理子模块154用于若判断子模块153判断出所述缩减节点小数大于或者等于预设第二阈值,则将所述缩减节点小数清零,且将所述缩减节点整数加1。
[0173] 确定子模块155用于将加1后的所述缩减节点整数确定为实际缩减节点数。
[0174] 处理子模块154还用于若判断子模块153判断出所述缩减节点小数小于预设第二阈值,则将所述缩减节点小数清零。
[0175] 确定子模块155还用于将所述缩减节点整数确定为实际缩减节点数。
[0176] 本发明实施例中,该装置还包括:第三判断模块16和第四判断模块17。
[0177] 第三判断模块16用于判断所述实际扩展节点数是否大于或者等于预设弹性节点数。
[0178] 第四判断模块17用于若第三判断模块16判断出所述实际扩展节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩
容;若第四判断模块17判断出所述告警服务节点的数量在预设第二时间段内未进行过弹性
扩容,则触发节点数处理模块13继续执行所述根据所述实际扩展节点数对所述告警服务节
点的数量进行弹性扩容的步骤。
[0179] 第三判断模块16还用于判断所述实际缩减节点数是否大于或者等于预设弹性节点数。
[0180] 第四判断模块17还用于若第三判断模块16判断出所述实际缩减节点数大于或者等于预设弹性节点数,判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性
缩容;若第四判断模块17判断出所述告警服务节点的数量在预设第二时间段内未进行过弹
性缩容,则触发节点数处理模块13继续执行所述根据所述实际缩减节点数对所述告警服务
节点的数量进行弹性缩容的步骤。
[0181] 第四判断模块17还用于判断所述告警服务节点的数量在预设第二时间段内是否进行过弹性扩容;若第四判断模块17判断出所述告警服务节点的数量在预设第二时间段内
未进行过弹性扩容,则触发节点数处理模块13继续执行所述将所述告警服务节点的数量加
1的步骤。
[0182] 本发明实施例提供的技术方案中,根据采集的预设时间段内的告警消息产生数量以及预设时间段,计算出告警产生速率,根据获取的所述告警服务节点的告警服务节点处
理速率以及获取的告警服务节点的数量,计算出告警预计处理速率,根据所述告警产生速
率、所述告警预计处理速率以及所述告警服务节点处理速率,计算出实际扩展节点数或者
实际缩减节点数,并通过根据所述告警产生速率是否大于所述告警预计处理速率的判断结
果,对所述告警服务节点的数量进行弹性扩缩容,从而避免了告警服务节点在空闲时间运
行,造成了硬件资源的浪费的问题。
[0183] 本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述告警服务节点的弹性扩缩容方法的实施例的各步骤,具
体描述可参见上述告警服务节点的弹性扩缩容方法的实施例。
[0184] 本发明实施例提供了一种服务器,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上
述告警服务节点的弹性扩缩容方法的步骤。具体描述可参见上述告警服务节点的弹性扩缩
容方法的实施例。
[0185] 图5为本发明实施例提供的一种服务器的示意图。如图5所示,该实施例的服务器3包括:处理器31、存储器32以及存储在存储32中并可在处理器31上运行的计算机程序33,该
计算机程序33被处理器31执行时实现实施例中的应用于告警服务节点的弹性扩缩容方法,
为避免重复,此处不一一赘述。或者,该计算机程序被处理器31执行时实现实施例中应用于
告警服务节点的弹性扩缩容装置中各模型/单元的功能,为避免重复,此处不一一赘述。
[0186] 服务器3包括,但不仅限于,处理器31、存储器32。本领域技术人员可以理解,图5仅仅是服务器3的示例,并不构成对服务器3的限定,可以包括比图示更多或更少的部件,或者
组合某些部件,或者不同的部件,例如服务器3还可以包括输入输出设备、网络接入设备、总
线等。
[0187] 所称处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路
(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field‑
Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、
分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器
等。
[0188] 存储器32可以是服务器3的内部存储单元,例如服务器3的硬盘或内存。存储器32也可以是服务器3的外部存储设备,例如服务器3上配备的插接式硬盘,智能存储卡(Smart 
Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,
存储器32还可以既包括服务器3的内部存储单元也包括外部存储设备。存储器32用于存储
计算机程序以及服务器3所需的其他程序和数量。存储器32还可以用于暂时地存储已经输
出或者将要输出的数量。
[0189] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0190] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,
仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以
结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论
的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或
通信连接,可以是电性,机械或其它的形式。
[0191] 作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0192] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0193] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机
装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个
实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‑
Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种
可以存储程序代码的介质。
[0194] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。