一种自动服务降级系统及方法与流程

文档序号:17955107发布日期:2019-06-19 00:23阅读:1170来源:国知局
一种自动服务降级系统及方法与流程

本发明涉及互联网领域,尤其涉及一种自动服务降级系统及方法。



背景技术:

检索系统、交易系统和通信系统是互联网企业中最常用的三类后端服务系统,支撑着搜索、电商和广告等关键业务。由于业务本身复杂性,系统通常只能提供有限的服务能力,这种服务能力一般用每秒响应请求数来衡量。互联网业务经常面临流量的周期性和随机性波动,比如双十一电商节、节假日车票抢购等。这种波动会给后端系统带来远超起服务能力的流量,及系统被超载,进而造成系统宕机和服务超时,并最终导致服务不可用。保障后端服务系统在高负载情况下的可用性一直是系统设计和开发中的一个重要课题。

传统的系统超载解决方案包括系统扩容、业务排队和随机丢弃请求等方法。系统扩容是指通过扩大后端服务系统的部署规模,提高服务能力,从而在根本上解决系统超载问题。然而扩容会增加业务运行成本,但并不能线性增加系统服务能力,很难达到理想的投入产出比。业务排队是指将要处理的请求放入队列,进而控制对后端服务系统的压力。但排队系统会明显降低业务相应速度,增加业务复杂度。随机丢弃请求是指后端服务系统随机丢弃超载部分的请求,从而避免进入超载,或者及时从超载状态恢复。不过随机丢弃的请求,会带来难以把握的业务损失。这三种方法虽然能够避免系统超载,但难以保证成本和效果。

互联网业务中流量一般指来自用户端浏览器的http请求。根据RFC2616中对HTTP/1.1协议的定义,http请求包含一个请求头,请求头中以key-value的方式向http服务器发送数据。

在现代用户操作系统中,用户浏览器一般为软件厂商以二进制方式发布给用户。因此,如何发送http请求头是由不受用户控制和修改的一段二进制代码来控制的。若用户安装了相同的浏览器二进制发布版本,则其向服务器发送的http请求头应具有相同的模式,可以利用这种模式来区分流量的重要度。传统方法采用统计每个ip的访问量来识别流量。



技术实现要素:

本发明的目的是为了解决现有技术的不足,提供一种自动服务降级系统,通过设计和引入一个流量识别模块,有选择的对流量进行服务和响应,从而避免系统超载、发生宕机和超时的问题。

本发明的目的是通过以下技术方案实现的:

一种自动服务降级系统,包括:

流量识别模块,用于识别流量重要程度,提供流量选择的依据;

流量选择模块,用于实现流量的选择和丢弃,保证后端服务不被超载;

所述流量识别模块在http请求头数据上设计特征算子,通过特征算子进行流量识别;所述流量识别模块计算流量的特征签名,所述特征签名采用机器学习算法训练一流量重要性预测模型K(X),根据流量重要性预测模型K(X)计算流量为重要流量的概率;

所述流量识别模块将计算得到的流量为重要流量的概率传送给流量选择模块,所述流量选择模块根据后端服务的容限Q,丢弃不需要的流量。

上述的一种自动服务降级系统,其中,所述流量识别模块在http请求头数据上设计的特征算子包括:

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

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

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

上述的一种自动服务降级系统,其中,根据设计的特征算子,将http请求头中的字段进行分类,每种字段对应一种或两种特征算子。

上述的一种自动服务降级系统,其中,根据设计的特征算子,在http请求头上进行特征提取,并计算特征签名来表示http流量。

上述的一种自动服务降级系统,其中,给定特征算子列表H和特征签名哈希函数M,所述特征签名采用以下方法计算:

步骤1,解析http请求头,提取各字段及其取值,得到解析后的http头;

步骤2,依顺序将特征算子列表H中每个算子应用于解析后的http头,判断算子是否为真,如果算子为真,则保留算子返回值,算子返回值构成特征列表F;

步骤3,对得到的特征列表F,采用特征签名哈希函数M计算流量的特征签名。

上述的一种自动服务降级系统,其中,所述步骤3具体包括:

步骤3.1,对特征列表F中的每个特征f,用签名哈希函数M计算哈希值;

步骤3.2,将步骤1得到的哈希值,按特征列表F的顺序排列,得到特征签名。

上述的一种自动服务降级系统,其中,所述特征签名采用机器学习算法训练一流量重要性预测模型K(X)的方法至少包括以下步骤:

步骤1,根据历史业务数据,计算每种特征签名对应的流量为重要流量的概率;

步骤2,使用逻辑斯特回归算法,使用梯度下降方法学习流量重要性预测模型K(X),K(X)给出流量X为重要流量的概率。

上述的一种自动服务降级系统,其中,所述流量选择模块根据后端服务的容限Q,丢弃不需要的流量的方法至少包括以下步骤:

步骤1,取线上服务时间片Tn时刻内的流量,使用流量重要性预测模型K(X)计算每个流量为重要流量的概率P(X),并计算P(X)的直方图Hn,Hn表示时间片Tn时刻内的流量重要性的分布;

步骤2,取一流量重要性阈值kn+1,并丢弃K(X)<kn+1的流量;

上述的一种自动服务降级系统,其中,所述流量重要性阈值kn+1的计算公式为:kn+1=maxkH(K)<Q,其中Q为后端服务系统的QPS容限,所述kn+1使用二分查找法求取,取值范围为0到1。

综上所述,本发明与现有技术相比,有以下优点和有益效果:

(1)本发明使用http头做特征签名进行流量识别,并使用流量重要性模型来丢弃流量,提高了业务速度和工作效率,且避免了随机丢弃带来的业务损失;

(1)本发明一种自动服务降级系统可避免后端服务系统在流量发生波动、超过系统服务能力时,系统超载宕机的情况发生;

(2)本发明一种自动服务降级系统在丢弃超载流量的情况下,能够自动识别流量重要性,最大可能的避免超载造成的业务损失。

附图说明

图1是本发明一种自动服务降级系统的原理框图。

具体实施方式

下面结合附图对本发明的具体实施方式作详细介绍。

请参见图1,本发明提供了一种自动服务降级系统,包括:流量识别模块,用于识别流量重要程度,提供流量选择的依据;流量选择模块,用于实现流量的选择和丢弃,保证后端服务不被超载。

流量识别模块在http请求头数据上设计特征算子,通过特征算子进行流量识别。

特征算子包括三类:

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

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

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

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

字段与特征算子的对应方式如表1所示:

表1

流量识别模块计算流量的特征签名,特征签名采用机器学习算法训练一流量重要性预测模型K(X),根据流量重要性预测模型K(X)计算流量为重要流量的概率。

要计算流量的特征签名,首先解析http请求头,提取各字段及其取值。给定特征算子列表H和特征签名哈希函数M,根据表1对字段的分类,通过约束算子进行特征提取,得到特征列表F,具体包括:依顺序将特征算子列表H中每个算子应用于解析后的http头,判断算子是否为真,如果算子为真,则保留算子返回值,算子返回值构成特征列表F。

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

流量识别模块通过在流量特征签名上学习得到的流量重要性预测模型K(X)预测流量的重要性。流量识别模块将计算的概率k=K(X)传送给流量选择模块,流量选择模块根据流量的重要性决定在系统即将超载的情况下,哪些流量应该得到服务,哪些流量应该暂时丢弃。

取线上服务时间片Tn时刻内的流量,分别计算每个流量为重要流量分布累积直方图Hn(k),Hn(k)表示时间片Tn时刻内的流量重要性大于k的流量。

设后端服务系统的QPS容限为Q,当每秒流量高于Q时后端服务系统将发生超载。为了避免超载,流量选择模块需要控制发送给后端服务系统的流量低于系统容限Q。

假设流量重要性分布相对稳定,短时间内不会发生变化,则可使用时间片Tn时刻内的流量重要性分布Hn作为对Tn+1时刻的估计,将Tn+1时刻内的流量重要性分布记为设

为了避免超载发生,在Tn+1时刻应丢弃重要性不高的流量,取流量重要性阈值kn+1,丢弃K(X)<kn+1的流量;流量重要性阈值kn+1的计算公式为:kn+1=maxkH(K)<Q,其中Q为后端服务系统的QPS容限,kn+1取值范围为0到1,可使用二分查找法求取。

采用上述流量选择算法能够保证重要性高的流量发送给后端服务系统,且不会超过系统QPS容限。

本发明自动服务降级系统部署在web服务器和检索系统之间。若流量不足以造成超载,则自动服务降级系统会使用非常低的重要性阈值,下发所有流量,不丢失任何流量;当流量增加超过检索系统容限,则自动降级系统会自动根据系统容限选择概率性阈值,自动丢弃不重要的流量,从而避免系统超载宕机。

综上所述,本发明与现有技术相比,有以下优点和有益效果:

(1)本发明使用http头做特征签名进行流量识别,并使用流量重要性模型来丢弃流量,提高了业务速度和工作效率,且避免了随机丢弃带来的业务损失;

(2)本发明一种自动服务降级系统可避免后端服务系统在流量发生波动、超过系统服务能力时,系统超载宕机的情况发生;

(3)本发明一种自动服务降级系统在丢弃超载流量的情况下,能够自动识别流量重要性,最大可能的避免超载造成的业务损失。

以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。

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