掌桥专利:专业的专利平台
掌桥专利
首页

通过定时任务实现服务器动态增减的方法、系统及装置

文献发布时间:2023-06-19 09:29:07


通过定时任务实现服务器动态增减的方法、系统及装置

技术领域

本申请涉及服务器动态调配的领域,尤其是涉及一种通过定时任务实现服务器动态增减的方法、系统及装置。

背景技术

随着互联网业务的不断壮大,不同业务的应用对服务器的要求也越来越多。为应对业务的快速增长,最常用的做法即为使用多台服务器来共同分担业务量,并且所有的服务请求数据都会经过负载均衡设备,由负载均衡设备将所有的服务请求转发到适当的服务器进行响应。

例如,公开号为CN106375420A的中国专利文本就公开了一种基于负载均衡的服务器集群智能监控系统,其包括检测模块、监控模块、信息分发模块、输出模块和报警模块;检测模块用于周期性的向负载均衡节点发送服务请求;监控模块用于实时监控负载均衡节点请求处理状态;信息分发模块用于处理分发控制信息;输入模块用于设定周期性发送服务请求的时间间隔,以及同一时间各负载均衡节点的最大并发处理数量;报警模块用于对异常信息进行报警。该系统旨在服务器集群收到服务请求后,制定合理的策略进行任务分配,准确的选择适当的应用服务器响应,从而使服务器集群能更好的为用户服务。

针对上述中的相关技术,发明人认为其存在以下缺陷:目前基本都是采用增加服务器然后再将服务请求分配到适当服务器的方式来满足业务需求,但是忽视了服务器数量的合理性;如果服务器数量配置较多而后期业务量下降后,无形之中也会增加企业的成本,大大降低服务器的使用率。

发明内容

为了改善满足业务需求过程中服务器数量配置不合理的问题,本申请提供一种通过定时任务实现服务器动态增减的方法、系统及装置。

第一方面,本申请提供一种通过定时任务实现服务器动态增减的方法,采用如下的技术方案:

一种通过定时任务实现服务器动态增减的方法,包括:

负载数据收集:获取负载的相关指标数据,再将获取的相关指标数据与预先配置的阈值进行比较,并分别记录超过和低于阈值的负载数量;

自动报表推送:根据记录的超过和低于阈值的负载数量以平均值的方式计算需要增减的负载的数量T,然后将计算出的需要增减的负载的数量T写入报表通知并在指定时间将该报表通知推送给相应的应用负责人;

通知运维操作:在相应的应用负责人确认报表通知的内容后,将一操作通知推送给运维进行操作,所述操作通知包括应用名称、增减台数、运维处理人和确认人。

通过采用上述技术方案,通过实时监控负载的各项指标,根据负载指标与配置的阈值比较,及时的将报表通知自动发给应用负责人,并根据应用负责人的确认操作及时将操作通知发给运维,以对应用负载进行增加或减少的操作。相比于相关技术中主要靠人工观察负载运行情况或者忽视了服务器数量的合理性的情况,大大降低了成本,同时也提高了管理效率。

优选的,所述负载数据收集具体包括:

获取应用配置,所述应用配置包括应用标识;

根据应用标识获取groupId;

根据groupId获取hostname;

根据hostname获取负载的相关指标数据,所述相关指标数据包括CPU使用率、内存使用率和GC;

将每一负载的各个相关指标数据均分别与配置的相关阈值进行比较,记录每一相关指标数据所对应的超过和低于阈值的负载数量,从而得到低负载数据和高负载数据;

低负载数据和高负载数据异步落地mysql。

通过采用上述技术方案,能够使数据持续持久化到mysql,保证了数据的真实性,实现了实时监控。

优选的,所述自动报表推送具体包括:

获取应用配置;

根据应用标识获取已落地的低负载数据和高负载数据;

根据获取的低负载数据和高负载数据以平均值的方式计算需要增减的负载的数量T;

将计算出的需要增减的负载的数量写入EXCEL;

将生成的EXCEL作为报表通知的附件并在指定时间将该报表通知发送给相应的应用负责人。

通过采用上述技术方案,应用负责人接收到的报表通知中包含EXCEL,应用负责人通过EXCEL即可观察到详细的负载增减数据,以为其后面的确认提供数据参考和依据。

优选的,根据获取的低负载数据和高负载数据以平均值的方式计算需要增减的负载的数量T,具体包括:

根据获取的低负载数据和高负载数据得到每个相关指标数据所对应的需要增加的负载数量或需要减小的负载数量,需要增加的负载数量为正数,需要减小的负载数量为负数;

识别获取到的正数的数量a和负数的数量b;

将所有的负载数量相加得到终值c并判断终值c是正数还是负数;

若判断终值c为正数,则通过计算公式T=c/a来计算需要增减的负载的数量T;

若判断终值c为负数,则通过计算公式T=c/b来计算需要增减的负载的数量T。

通过采用上述技术方案,独立考虑每个相关指标数据所对应的需要增加的负载数量或需要减小的负载数量之后,采用考虑正数数量和负数数量的方式来计算各种情况下的负载增减数量平均值即需要增减的负载的数量T,使得最终算出的增减数据更符合实际运营场景。

优选的,在所述自动报表推送中,所述报表通知采用邮件的方式发送给对应的应用负责人,EXCEL文件作为邮件的附件;在邮件发送完成后删除本地EXCEL文件。

通过采用上述技术方案,邮件作为一种常用的信息沟通方式,具备即时性和长久保留性的特点,其一,便于使用者查看信息和使用,其二,不必再开发一种沟通平台来满足报表通知的发送和查看,大大节省了运营成本和操作使用成本。

优选的,在所述自动报表推送中,所发送邮件的邮件内容中加入有操作链接;

所述通知运维操作包括:

在相应的应用负责人点击操作链接后,根据链接中唯一值messagekey在redis中获取对应的推送信息并形成操作通知,所述操作通知包括应用名称、增减台数、运维处理人和确认人;

通过群机器人将操作通知推送给指定运维或推送到指定运维所在的群以供运维进行服务器的增减操作。

通过采用上述技术方案,在应用负责人点击操作链接后即代表应用负责人进行了确认操作,提高了整个流程处理的效率。

优选的,在所述通知运维操作中,在所述通过群机器人将操作通知推送给指定运维或推送到指定运维所在的群以供运维进行服务器的增减操作之后,还包括:将预设的与相应应用对应的opsKey置为false;

所述方法还包括自动检查应用,所述自动检查应用包括:

获取应用配置,所述应用配置包括应用所对应的服务器数量和opsKey的状态;其中,当服务器数量发生变化时,应用所对应的opsKey会被置为true;

根据应用所对应的opsKey查看操作状态,若opsKey仍然为false,则将应用标记为未操作应用;若opsKey为true,则将应用标记为已操作应用;

在指定时间将未操作应用对应的操作通知再次推送给指定运维或推送到指定运维所在的群。

通过采用上述技术方案,能够在发完操作通知后自动检查运维有没有对负载的数量进行重新配置,若在指定时间长度过后没有被处理,可以进行二次通知,保证负载增减的时效性。

第二方面,本申请提供一种通过定时任务实现服务器动态增减的系统,采用如下的技术方案:

一种通过定时任务实现服务器动态增减的系统,包括:

负载数据收集模块,用于获取负载的相关指标数据,再将获取的相关指标数据与预先配置的阈值进行比较,并分别记录超过和低于阈值的负载数量;

自动报表推送模块,包括,

数据获取子模块,用于获取所述负载数据收集模块记录的超过和低于阈值的负载数量;

数据计算子模块,用于根据所述数据获取子模块获取的超过和低于阈值的负载数量以平均值的方式计算需要增减的负载的数量T;以及,

报表生成子模块,用于将所述数据计算子模块计算出的需要增减的负载的数量T写入EXCEL,且在指定时间将生成的EXCEL作为报表通知的附件并将该报表通知加入操作链接后发送给相应的应用负责人;

通知运维操作模块,用于在相应的应用负责人点击报表通知中的操作链接后,将一操作通知推送给运维进行操作,同时将预设的与相应应用对应的opsKey置为false,所述操作通知包括应用名称、增减台数、运维处理人和确认人;以及,

自动检查应用模块,包括,

应用配置获取子模块,用于获取包括应用所对应的服务器数量的应用配置信息,且在当服务器数量发生变化时,将应用所对应的opsKey置为true;

操作状态查看子模块,用于根据应用所对应的opsKey查看操作状态,若opsKey仍然为false,则将应用标记为未操作应用,若opsKey为true,则将应用标记为已操作应用;以及,

二次推送子模块,用于在指定时间将未操作应用对应的操作通知再次推送给指定运维或推送到指定运维所在的群。

通过采用上述技术方案,能够将实时监控到的负载指标与配置的阈值进行比较,从而得出需要增减的负载数量并发送给对应的应用负责人和运维,以使运维对应用负载进行增加或减少的操作,进而使得负载的数量维持在一个较为合理的范围内,有效降低了成本。另外,系统自动化程度高,除了运维的实际增减负载的操作外,整个流程基本不需要人为干预,也大大提升了管理效率。

第三方面,本申请提供一种通过定时任务实现服务器动态增减的装置,采用如下的技术方案:

一种通过定时任务实现服务器动态增减的装置,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种方法的计算机程序。

通过采用上述技术方案,便于实现对负债数据的自动监控,并给出相应的建议应用增减的负载台数的功能,有效降低了企业的成本,也大大增加了负载的使用率。

第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:

一种计算机可读存储介质,存储有能够被处理器加载并执行如上述任一种方法的计算机程序。

通过采用上述技术方案,存储能够加载并执行上述方法的程序,有利于减小运营成本,并且提高了管理效率和负载使用率。

附图说明

图1是本申请实施例的通过定时任务实现服务器动态增减的方法的流程图。

图2是本申请实施例的步骤S100的流程图。

图3是本申请实施例的步骤S200的流程图。

图4是本申请实施例的步骤S230的流程图。

图5是本申请实施例的步骤S300的流程图。

图6是本申请实施例的步骤S400的流程图。

图7是本申请实施例的通过定时任务实现服务器动态增减的系统的结构框图。

附图标记说明:1、负载数据收集模块;2、自动报表推送模块;21、数据获取子模块;22、数据计算子模块;23、报表生成子模块;3、通知运维操作模块;4、自动检查应用模块;41、应用配置获取子模块;42、操作状态查看子模块;43、二次推送子模块。

具体实施方式

以下结合附图1-7对本申请作进一步详细说明。

本申请实施例公开一种通过定时任务实现服务器动态增减的方法。参照图1,方法包括以下步骤:

S100、负载数据收集:获取负载的相关指标数据,再将获取的相关指标数据与预先配置的阈值进行比较,并记录超过和低于阈值的负载数量。这里的负载即指服务器。

具体的,参照图2,步骤S100包括以下子步骤:

S101、获取应用配置,应用配置包括应用标识;

S102、根据应用标识获取groupId,groupId即指应用组名称;

S103、根据groupId获取hostname,hostname即指服务器名称;

S104、根据hostname获取负载的相关指标数据,具体来说,在本实施例中,相关指标数据包括CPU使用率、内存使用率和GC(垃圾回收);

S105、将每一负载的各个相关指标数据均分别与配置的相关阈值进行比较,具体来说,每一相关指标数据均对应一个阈值,在将相关指标数据与对应阈值比较过后,记录每一相关指标数据所对应的超过和低于对应阈值的负载数量,从而得到低负载数据和高负载数据;

S106、低负载数据和高负载数据异步落地mysql,换句话说,就是将低负载数据和高负载数据持久化到mysql;

需要说明的是,在一个检测周期内例如一天内,若某一相关指标数据的超过相应阈值的服务器总数量为N1,小于等于相应阈值的服务器总数量为N2,则将该相关指标数据所对应的超过阈值的负载数量记为N1,并且将该相关指标数据所对应的低于阈值的负载数量记为N2。

S200、自动报表推送:根据记录的超过和低于阈值的负载数量以平均值的方式计算需要增减的负载的数量T,然后将计算出的需要增减的负载的数量T写入报表通知,并在指定时间例如周一上午将该报表通知推送给相应的应用负责人。

具体的,参照图3,步骤S200包括以下子步骤:

S201、获取应用配置;

S202、根据子步骤S201中获取到的应用配置中的应用标识获取已落地的低负载数据和高负载数据;

S203、根据获取的低负载数据和高负载数据以平均值的方式计算需要增减的负载的数量T;

S204、将计算出的需要增减的负载的数量写入EXCEL;这里需要说明的是,EXCEL中除了增减台数外,还包括相应的应用名称、运维处理人和确认人,以及原始的监控数据;

S205、将子步骤S204中生成的EXCEL作为报表通知的附件并在指定时间将该报表通知发送给相应的应用负责人;具体的,报表通知采用邮件的方式发送给对应的应用负责人,EXCEL文件作为邮件的附件,而且在发送的邮件的邮件内容中加入有操作链接;

S206、在邮件发送完成后删除本地EXCEL文件。

其中,参照图4,子步骤S203具体包括:

S2301、根据获取的低负载数据和高负载数据得到每个相关指标数据所对应的需要增加的负载数量或需要减小的负载数量;需要增加负载时的负载数量为正数,需要减小负载时的负载数量为负数;

S2302、识别获取到的正数的数量a和负数的数量b;

S2303、将所有的负载数量相加得到终值c并判断终值c是正数还是负数;若判断终值c为正数,则进入S2304;若判断终值c为负数,则进入S2305;

S2304、通过计算公式T=c/a来计算需要增减的负载的数量T;

S2305、则通过计算公式T=c/b来计算需要增减的负载的数量T。

S300、通知运维操作:在相应的应用负责人确认报表通知的内容后,将一操作通知推送给运维进行操作,操作通知的内容包括应用名称、增减台数、运维处理人和确认人。

具体的,参照图5,步骤S300包括以下子步骤:

S301、在相应的应用负责人点击操作链接后,根据链接中的唯一值messagekey在redis中获取对应的推送信息并形成操作通知,所述操作通知包括应用名称、增减台数、运维处理人和确认人;redis中存储的推送信息即包括应用名称、增减台数、运维处理人和确认人,其为在子步骤S204中将计算出的需要增减的负载的数量写入EXCEL时同步存入redis的数据;

S302、通过群机器人将操作通知推送给指定运维或推送到指定运维所在的群以供运维进行服务器的增减操作;

S303、将预设的与相应应用对应的opsKey置为false;

S400、自动检查应用:自动检查与应用相对应的运维是否有去进行负载的增减操作,并在长时间未操作时,将未操作应用推送给相应运维。

具体的,参照图6,步骤S400包括以下子步骤:

S401、获取应用配置,应用配置包括应用所对应的服务器数量以及opsKey的状态;应注意的是,当服务器数量发生变化时,应用所对应的opsKey会被置为true;

S402、根据应用所对应的opsKey查看操作状态,若opsKey仍然为false,则将应用标记为未操作应用;若opsKey为true,则将应用标记为已操作应用;

S403、在指定时间将未操作应用对应的操作通知再次推送给指定运维或推送到指定运维所在的群,或者采用人工的方式通知相应的应用负责人或相应的运维。

基于上述方法,本申请实施例还公开一种通过定时任务实现服务器动态增减的系统。参照图7,系统包括:

负载数据收集模块1,用于获取负载的相关指标数据,再将获取的相关指标数据与预先配置的阈值进行比较,并记录超过和低于阈值的负载数量;

自动报表推送模块2,包括,

数据获取子模块21,用于获取负载数据收集模块1记录的超过和低于阈值的负载数量;

数据计算子模块22,用于根据数据获取子模块21获取的超过和低于阈值的负载数量以平均值的方式计算需要增减的负载的数量T;以及,

报表生成子模块23,用于将数据计算子模块22计算出的需要增减的负载的数量T写入EXCEL,且在指定时间将生成的EXCEL作为报表通知的附件并将该报表通知加入操作链接后发送给相应的应用负责人;

通知运维操作模块3,用于在相应的应用负责人点击报表通知中的操作链接后,将一操作通知推送给运维进行操作,同时将预设的与相应应用对应的opsKey置为false,操作通知包括应用名称、增减台数、运维处理人和确认人;以及,

自动检查应用模块4,包括,

应用配置获取子模块41,用于获取包括应用所对应的服务器数量的应用配置信息,且在当服务器数量发生变化时,将应用所对应的opsKey置为true;

操作状态查看子模块42,用于根据应用所对应的opsKey查看操作状态,若opsKey仍然为false,则将应用标记为未操作应用,若opsKey为true,则将应用标记为已操作应用;以及,

二次推送子模块43,用于在指定时间将未操作应用对应的操作通知再次推送给指定运维或推送到指定运维所在的群,或者向管理员发送需要其人工通知相应应用负责人或相应运维的报警信号。

本申请实施例还公开一种通过定时任务实现服务器动态增减的装置,其包括存储器和处理器,其中,存储器上存储有能够被处理器加载并执行如上述的通过定时任务实现服务器动态增减的方法的计算机程序。

本申请实施例还公开一种计算机可读存储介质。计算机可读存储介质内存储有能够被处理器加载并执行如上述的通过定时任务实现服务器动态增减的方法的计算机程序,所述计算机可读存储介质例如包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。

相关技术
  • 通过定时任务实现服务器动态增减的方法、系统及装置
  • 定时任务动态配置方法及装置、存储介质及服务器集群
技术分类

06120112186543