网络服务的数据流量监控方法和装置的制造方法_4

文档序号:9527453阅读:来源:国知局
如果客户端的当前请求速率大于数据流量正常情况下的最大请求速率,表示当前 客户端单位时间内发出的请求数量大于正常情况下单位时间内的请求数量的最大值。为了 处理客户端的请求,服务器的查询数量会突增,每秒查询率随之突增。这时,可以确定网络 服务中的异常请求为每秒查询率异常的请求。
[0082] 步骤4042,如果步骤403的比较结果为客户端的当前请求速率小于数据流量正常 情况下的最大请求速率,基于请求速率和请求耗时计算当前请求的执行频率。
[0083] 在本实施例中,如果执行请求所消耗的时间过长,服务器对当前请求的执行频率 过低,则可以确定异常请求的类型为请求耗时异常。在实际场景中,请求耗时异常的请求表 现为慢查询,即客户端发出的查询请求在较长时间内未收到服务器的应答。
[0084] 在本实施例中,步骤401中获取的客户端的请求信息除了包括请求速率之外,还 包括请求耗时。请求耗时是执行当前请求所消耗的时间。在本实施例中,当前请求的执行 频率可以是当前的单位时间内执行的请求的数量,与当前的请求速率具有正相关的关系, 与当前的请求耗时具有负相关的关系。上述电子设备可以基于客户端的请求耗时和请求速 率来计算当前请求的执行频率。例如可以用将请求速率和请求耗时的比值乘以换算因子作 为当前请求的执行频率,该换算因子可以根据经验设定。
[0085] 在本实施例的一些可选的实现方式中,计算当前请求的执行频率时,也可以通过 计算以当前时间为结束时间的一个时间段内的请求执行的频率,并进行加权求和来得出当 前请求的执行频率。其中,请求执行的频率与请求的时间相关,请求的时间越接近当前时 间,权重越大。
[0086] 在本实施例的一些可选的实现方式中,客户端的当前请求的执行频率可以利用以 当前时间为结束时间的一个时间段内的请求执行总数和峰值来描述。例如,可以通过当前 时间之前90秒内执行的请求总数和每秒执行的请求数的最大值来描述当前请求的执行频 率。相应地,数据流量正常情况下的最大执行频率也可以采用类似的方式描述,例如通过网 络服务中不存在异常请求时90秒内的请求总数和每秒执行的请求数的最大值来表征数据 流量正常情况下的最大执行频率。
[0087] 步骤4043,判断当前请求的执行频率是否大于数据流量正常情况下的最大执行频 率,以及请求耗时是否大于预设请求耗时。
[0088] 在本实施例的实际场景中,如果网络服务中存在请求耗时异常的请求,一方面,月艮 务器CPU和内存资源占用率增长,服务器处理请求的速度减慢,另一方面,客户端不断发出 新的请求,若不能收到服务器的应答消息,客户端可能重发已经发出的请求,造成客户端请 求速率增大,服务器端请求的执行频率下降。在这种场景下,可以基于请求耗时和请求的而 执行频率来判断网络服务中的异常请求是否为请求耗时异常的请求。具体地,可以判断当 前请求的执行频率是否大于数据量流量正常情况下的最大执行频率,若大于,则继续判断 当前请求的请求耗时是否大于预设请求耗时。数据流量正常情况下的请求执行频率也可以 保存在网络服务的存储介质中,例如保存在网络服务的数据库和/或内存中。预设请求耗 时是可配置的时间参数,可以是人工配置的值,例如1〇〇〇毫秒,也可以基于网络服务的请 求耗平均值或最大值自动配置。
[0089] 在本实施例的一些可选的实现方式中,在判断当前请求的执行频率是否大于数据 流量正常情况下的最大执行频率,以及当前请求的请求耗时是否大于预设请求耗时之前, 还可以按照请求耗时对客户端的当前请求进行排序,建立请求耗时由长到短的请求队列。 这时,电子设备可以按照请求队列的排序依次判断请求队列中的请求的执行频率是否大于 数据流量正常情况下的最大执行频率,以及请求队列中的请求的请求耗时是否大于预设请 求耗时。请求耗时越长,对应的请求为异常请求的概率越大,按照请求耗时的排序依次将当 前请求的执行频率和请求耗时与作为参考值的正常情况下的最大执行频率和预设请求耗 时进行比对,可以加快异常请求的识别速度。
[0090] 步骤4044,如果步骤4043的判断结果为是,确定客户端的当前请求为请求耗时异 常的异常请求。
[0091] 如果步骤4043的判断结果为当前请求的执行频率大于数据流量正常情况下的最 大执行频率且当前请求的请求耗时大于预设请求耗时,则可以确定客户端的当前请求为请 求耗时异常的请求。
[0092] 步骤405,根据异常请求的类型进行相应的数据流量控制。
[0093] 在本实施例中,上述电子设备(如图1所示的服务器)可以基于异常请求的类型 对客户端的请求进行相应的数据流量控制。数据流量控制的方式可以包括但不限于:为请 求设置处理优先级、限制请求速率、限制请求执行频率、删除恶意重复请求等。可以根据步 骤4041-步骤4044识别出的异常请求的类型对网络中的数据流量进行针对性的控制。例 如,当异常请求的类型为每秒查询率异常时,可以对发出该异常请求的客户端或用户进行 标记,将该用户所发出的请求的处理优先级降低。当异常请求的类型为请求耗时异常时,可 以对该异常请求进行标记,并计算其他请求与该异常请求的相似度,限制该异常请求的执 行频率以及与该异常请求的相似度大于某一阈值的请求的执行频率。
[0094] 从图4中可以看出,与图2对应的实施例相比,本实施例中的网络服务的数据流量 监控方法的流程400细化了基于请求信息识别异常请求的类型的步骤。由此,本实施例描 述的方案可以在网络服务的业务受损过程对当前网络服务中的数据流量的相关信息进行 更全面的分析,快速识别异常请求的类型,从而可以有效提升故障定位准确度,缩短故障恢 复时间,提升网络服务的稳定性。
[0095] 以下结合图5和图6进一步说明电子设备根据异常请求的类型进行相应的数据流 量控制的流程,即进一步说明步骤405的实现方式。
[0096] 如果客户端的异常请求的类型为每秒查询率异常,则上述电子设备(如图1所示 的服务器)可以通过对异常请求引入时延的方式,通过数据库的令牌数控制请求队列中请 求的处理速度,从而降低发出异常请求的用户的每秒查询率。其中,令牌数可以是网络服务 的数据库允许处理的请求余量。
[0097] 在具体的实现方式中,对每秒查询率异常的异常请求,可以判断是否满足第一预 设条件和是否满足第二预设条件;若满足第一预设条件,则将客户端的当前请求发送至数 据库,并在数据库允许处理的请求余量大于〇时将数据库允许处理的请求余量减1 ;若满足 第二预设条件,则将客户端的当前请求发送至数据库并将数据库允许处理的请求余量减1 ; 若不满足第一预设条件且不满足第二预设条件,将客户端的当前请求加入缓存队列。其中, 第一预设条件为当前请求为预设类型的请求,第二预设条件为缓存队列的长度为〇且数据 库允许处理的请求余量大于0。预设类型的请求可以为重要性高的请求或优先级高的请求。
[0098] 进一步参考图5,其示出了根据本申请实施例的对每秒查询率异常的异常请求进 行流量控制的场景示意图。如图5所示,服务器对接收到的请求510,首先执行步骤501,判 断请求速率是否大于正常情况下的最大请求速率,即判断当前QPS的加权均值是否大于正 常情况下的QPS加权均值。如果是,则确定该请求为每秒查询率异常的请求520。之后,在 步骤502中,判断该请求是否为重要请求,如果是,则执行步骤5031,将该请求发送至数据 库进行处理。之后在步骤5032中判断数据库的令牌数是否大于零,如果令牌数大于0,则执 行步骤5033,将令牌数减1。如果步骤502的判断结果为该异常请求不是重要请求,则进一 步执行步骤5041,判断当前缓存队列的长度是否大于0,如果是,则在步骤5042中,将该异 常请求添加至缓存队列。对于缓存队列中的请求,执行步骤5043,判断令牌数是否大于0, 如果令牌数大于0,则可以执行步骤5044,从缓存队列中取出一个请求发送至数据库,并执 行步骤5045,将令牌数减1。如果步骤5041的判断结果为缓存队列的长度不大于0,则可以 直接执行步骤5043,判断令牌数是否大于0,如果令牌数大于0,则执行步骤5044,将异常请 求中的一个请求发送至数据库进行处理,同时在步骤5045中将令牌数减1。
[0099] 对于加入缓存队列的请求,可以确定缓存队列中请求的访问对象,根据访问对象 控制当前请求的速率。访问对象可以包括网络服务的主数据库和从数据库。若客户端的当 前请求的访问对象为主数据库,则可以对客户端的写请求的速率进行控制;若客户端的当 前请求的访问对象为从数据库,则可以对客户端读请求的速率进行控制。控制读请求或写 请求的速率的方式可以为按照图5所示的方式对读请求或写请求引入时延,判断其是否为 重要请求,建立读请求或写请求的缓存队列,通过令牌数来控制服务器执行的读请求或写 请求的数量。
[0100] 在图4所示实施例的一些可选的实现方式中,客户端的请求信息还可以包括请求 内容。如果客户端的异常请求的类型为请求耗时异常,则上述电子设备(如图1所示的服 务器)可以通过如下方式进行数据量流量控制:基于请求内容提取请求耗时异常的异常请 求以及当前请求的特征信息,将与请求耗时异常的异常请求具有类似特征信息的当前请求 记录至黑名单,在第一预定时间段之后将黑名单内的请求移至红名单;在第二预定时间段 之后将红名单内的请求移出红名单。对黑名单和红名单内的请求分别执行以下操作:将黑 名单内请求的请求速率限制为〇 ;将红名单内请求的请求速率的上限控制为数据流量正常 情况下的最大请求速率。其中,黑名单中的请求为被封禁的请求,红名单中的请求为需要限 速的请求。上述电子设备可以对黑名单中的请求不进行处理,对红名单中的请求进行降速 处理。第一预定时间段和第二预定时间段可以为人工设置的时间段,例如300秒。
[0101] 在上述对请求耗时异常的请求进行数据流量控制的过程中,异常请求的特征信息 的提取可以如下进行:对异常请求进行抽样,对抽样出的异常请求的字符
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1