服务降级处理方法及装置与流程

文档序号:13476059阅读:788来源:国知局
服务降级处理方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种服务降级处理方法及装置。



背景技术:

随着计算机互联网技术的发展,特别是随着全球化进程的推进,互联网的覆盖范围越来越大,覆盖深度已经深入人们的衣食住行。随着服务器服务的客户端基数增大,服务器的负载越来越高。尤其是当某一时间段大量用户同时访问同一网站时(例如,春运时购买火车票,或者双十一商城大促等情况),若不能根据负载情况对该网站的服务器进行优化处理,则该网站的服务器的运行会越来越慢甚至导致宕机,对访问该网站的用户来说体验极为不佳。

现有技术中,对于超过服务能力的突发流量时,一般采用丢弃部分请求的方式,具体为随机丢弃请求,或者根据来源、查询模式按照配置的优先级逐步丢弃不重要的请求,尽量确保重要的请求。但这种方式总是会导致服务的部分不可用。

现有技术的另一种应对超过服务能力的突发流量的方式是在添加服务器,然而这种方式的缺点是反应慢,尤其是因为突发超过服务能力的流量一般来说是非正常的增长,在添加机器时,机器的准备以及数据的同步都需要时间,在这段时间内可能导致部分服务不可用的状态,并且,在机器添加过程中还需要人工介入,不够智能,反应滞后,不能快速应对突发的流量尖峰。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本申请实施例提供一种服务降级处理方法及装置,其目的是根据应用服务的异常情况进行自动服务降级处理。

本申请提供一种服务降级处理方法,包括:

预先将应用服务的核心业务接口数据保存到内存中;

当检测到所述应用服务的服务状态信息超过预设的状态阈值时,从内存中获取所述应用服务的核心业务接口数据;

根据预先设置的所述应用服务的降级策略进行服务降级。

可选地,所述应用服务的服务状态信息是根据所述应用服务所占的负载参数进行确定的,所述负载参数包括cpu占用、内存占用、带宽占用、并发请求数、服务响应时间和服务错误数中的至少一种参数。

可选地,所述的方法还包括:

预先对所述应用服务的各个业务进行优先级划分;

根据各业务的优先级设置对应的服务降级策略。

可选地,根据预先设置的所述应用服务的降级策略进行服务降级,包括:

根据所述应用服务中低优先级的业务的服务降级策略,对所述应用服务中低优先级的业务进行服务降级处理。

可选地,根据预先设置的所述应用服务的降级策略进行服务降级,还包括:

对所述应用服务的并发请求分别进行流量重要性的级别计算,确定重要性级别高的流量对应的请求和重要性级别低的流量对应的请求,对所述重要性级别低的流量对应的请求进行丢弃。

本申请还包括一种服务降级处理装置,包括:

保存模块,用于预先将应用服务的核心业务接口数据保存到内存中;

检测模块,用于检测到所述应用服务的服务状态信息超过预设的状态阈值;

获取模块,用于从内存中获取所述应用服务的核心业务接口数据;

降级模块,用于根据预先设置的所述应用服务的降级策略进行服务降级。

可选地,所述应用服务的服务状态信息是根据所述应用服务所占的负载参数进行确定的,所述负载参数包括cpu占用、内存占用、带宽占用、并发请求数、服务响应时间和服务错误数中的至少一种参数。

可选地,所述的装置还包括:

划分模块,用于对所述应用服务的各个业务进行优先级划分;

设置模块,用于根据所述划分模块划分的各业务的优先级设置对应的服务降级策略。

可选地,所述降级模块用于:

根据所述设置模块设置的应用服务中低优先级的业务的服务降级策略,对所述应用服务中低优先级的业务进行服务降级处理。

可选地,所述降级模块,具体还用于对所述应用服务的并发请求分别进行流量重要性的级别计算,确定重要性级别高的流量对应的请求和重要性级别低的流量对应的请求,对所述重要性级别低的流量对应的请求进行丢弃。

本申请实施例通过预先将应用服务的核心业务接口数据保存到内存中;当检测到所述应用服务的服务状态信息超过预设的状态阈值时,从内存中获取所述应用服务的核心业务接口数据;根据预先设置的所述应用服务的降级策略进行服务降级。不仅可以保证应用服务的核心业务正常进行,同时可以根据业务的优先级自动进行对应的服务降级处理,无需人为操作,大大减少了人为因素带来的各种误差。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一实施例提供的服务降级处理方法的流程示意图;

图2为应用服务的业务功能架构图;

图3为本申请一实施例提供的服务降级处理装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本申请一实施例提供的服务降级处理方法的流程示意图,如图1所示,所述方法包括:

101、预先将应用服务的核心业务接口数据保存到内存中;

为了保证应用服务的核心业务的正常进行,本发明实施例中首先可以将核心业务接口数据保存到内存中,例如,当发生对应用服务的流量高峰时,可以从内存中获取该应用服务的核心业务接口数据,保证核心业务的快速流畅的进行,不影响用户体验。

102、检测到所述应用服务的服务状态信息超过预设的状态阈值;

本发明实施例中,应用服务的服务状态信息是根据所述应用服务所占的负载参数进行确定的,其中,所述负载参数包括cpu占用、内存占用、带宽占用、并发请求数、服务响应时间和服务错误数中的至少一种参数,具体地,负载参数可以通过shell脚本采集应用服务的负载数据。

这里的状态阈值例如包括该应用服务的负载阈值、并发请求数阈值或者服务响应时间阈值等。

103、从内存中获取所述应用服务的核心业务接口数据;

104、根据预先设置的所述应用服务的降级策略进行服务降级。

图2为应用服务的业务功能架构图,如图2所示,每个应用服务可以部署一个或多个业务,用来响应用户各种各样的服务需求,例如查询上平业务、查询订单业务、支付业务、退款业务等各种各样的业务功能,本发明对各业务功能不做限定。需要说明的是,本发明实施例中,预先对所述应用服务的各个业务进行优先级划分;之后,根据各业务的优先级设置对应的服务降级策略。这样当检测到所述应用服务的服务状态信息超过预设的状态阈值,需要进行降级处理时,可以根据所述应用服务中低优先级的业务的服务降级策略,对所述应用服务中低优先级的业务进行服务降级处理。

可选地,当对所述应用服务的并发请求数或者访问量远超过服务所能承载的能力,有可能会让该应用服务崩溃的时候,本发明实施例中,还可以对所述应用服务的并发请求分别进行流量重要性的级别计算,确定重要性级别高的流量对应的请求和重要性级别低的流量对应的请求,对所述重要性级别低的流量对应的请求进行丢弃。

具体地,对流量重要性的级别计算的具体实现方法包括如下:

首先,在http请求头数据上设计特征算子,通过特征算子进行流量识别。其中,特征算子包括三类:

值约束算子,表示请求头中某key取某值,表达式为key=val;

序约束算子,表示请求头中某key在另一key之前,表达式为key1>key2;

组合约束算子,表示两个算子同时为真,表达式为a|b。

根据设计的特征算子,按照适用算子类型,将http请求头中的字段进行分类,每种字段对应一种或两种特征算子。

之后,计算流量的特征签名,特征签名采用机器学习算法训练一流量重要性预测模型k(x),根据流量重要性预测模型k(x)计算流量为重要流量的概率。要计算流量的特征签名,首先解析http请求头,提取各字段及其取值。给定特征算子列表h和特征签名哈希函数m,根据对字段的分类,通过约束算子进行特征提取,得到特征列表f,具体包括:依顺序将特征算子列表h中每个算子应用于解析后的http头,判断算子是否为真,如果算子为真,则保留算子返回值,算子返回值构成特征列表f。

然后,再通过特征签名哈希函数m将特征列表f转化为征签名向量x,初始化征签名向量x为零向量。对特征列表f中的每个特征f,用签名哈希函数m计算哈希值;将得到的哈希值,按特征列表f的顺序排列,得到特征签名。

最后,通过在流量特征签名上学习得到的流量重要性预测模型k(x)计算流量的重要性级别。根据计算的重要流量的概率k=k(x)决定在在应用服务即将超载的情况下,重要性级别高的流量对应的请求应该得到服务,重要性级别低的流量对应的请求应该暂时丢弃。

这样,本发明实施例使用http头做特征签名进行重要请求的流量识别,并使用流量重要性模型来丢弃重要性低的流量对应的请求,提高了应用服务核心业务速度和工作效率,且避免了随机丢弃带来的业务损失,可避免在流量发生波动、超过应用服务能力时,能够自动识别流量。

图3为本申请一实施例提供的服务降级处理装置的结构示意图,如图3所示,包括:

保存模块,用于预先将应用服务的核心业务接口数据保存到内存中;

检测模块,用于检测到所述应用服务的服务状态信息超过预设的状态阈值;

获取模块,用于从内存中获取所述应用服务的核心业务接口数据;

降级模块,用于根据预先设置的所述应用服务的降级策略进行服务降级。

其中,所述应用服务的服务状态信息是根据所述应用服务所占的负载参数进行确定的,所述负载参数包括cpu占用、内存占用、带宽占用、并发请求数、服务响应时间和服务错误数中的至少一种参数。

其中,所述的装置还包括:

划分模块,用于对所述应用服务的各个业务进行优先级划分;

设置模块,用于根据所述划分模块划分的各业务的优先级设置对应的服务降级策略。

其中,所述降级模块还用于:根据所述设置模块设置的应用服务中低优先级的业务的服务降级策略,对所述应用服务中低优先级的业务进行服务降级处理。

其中,所述降级模块,具体还用于对所述应用服务的并发请求分别进行流量重要性的级别计算,确定重要性级别高的流量对应的请求和重要性级别低的流量对应的请求,对所述重要性级别低的流量对应的请求进行丢弃。

本发明实施例所述装置可以执行图1所示的方法,具体实现原理参考图1所示实施例的详细内容。即通过预先将应用服务的核心业务接口数据保存到内存中;当检测到所述应用服务的服务状态信息超过预设的状态阈值时,从内存中获取所述应用服务的核心业务接口数据;根据预先设置的所述应用服务的降级策略进行服务降级。不仅可以保证应用服务的核心业务正常进行,同时可以根据业务的优先级自动进行对应的服务降级处理,无需人为操作,大大减少了人为因素带来的各种误差。进一步地,还可以使用http头做特征签名进行重要请求的流量识别,并使用流量重要性模型来丢弃重要性低的流量对应的请求,提高了应用服务核心业务速度和工作效率,且避免了随机丢弃带来的业务损失,可避免在流量发生波动、超过应用服务能力时,能够自动识别流量。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1