一种过载保护方法及装置制造方法及图纸

技术编号:17883667 阅读:35 留言:0更新日期:2018-05-06 04:17
本发明专利技术实施例公开了一种过载保护方法及装置,其中所述方法包括:在获取通信队列中的请求消息之后,判断当前服务端是否处于服务过载高水位;若当前服务端处于服务过载高水位,则丢弃所述请求消息;若当前服务端不在服务过载高水位,则根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。本发明专利技术实施例可实现服务端持续不断对外提供服务,缩短服务由过载到恢复的时间,提高服务框架的稳定性。

A method and device for overload protection

An embodiment of the invention discloses an overload protection method and device, in which the method includes: judging whether the current server is at a high level of service overload after obtaining a request message in a communication queue; if the current server is in a service overload high water level, the request message is discarded; if the current server is not at the current server, The service overloads the high water level, and determines whether the queue waiting time of the requested message is overloaded according to the queue time of the communication queue described by the request message. If, then the requested message is discarded. The embodiment of the invention can realize the continuous external service provided by the server, shorten the time from overload to recovery, and improve the stability of the service framework.

【技术实现步骤摘要】
一种过载保护方法及装置
本专利技术涉及计算机
,尤其涉及一种过载保护方法及装置。
技术介绍
微服务是一个新兴的软件架构,即是把一个大型的单个应用程序和服务拆分成多个微服务,系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。然而在海量服务中基本都会遇到过载情况,服务过载初期会导致部分服务不可用,如果处理不当可能会导致服务完全不可用,甚至导致雪崩。随着微服务化在乐信集团逐步推进,服务端的服务过载保护成为微服务化的服务对外提供稳定服务的一道屏障。目前,常见的服务端过载保护方案有以下两种:(1)请求量阈值控制方案。服务部署上线前,预估服务吞吐量,设置过载保护阈值的低水位和高水位,当服务请求量接近低水位阈值时服务过载告警,服务请求量超过高水位时触发拒绝服务机制。(2)检测请求到达时间方案。通过判断请求处理时延确定服务是否过载,设置服务时延阈值,记录请求到达的时间戳和请求处理结束的时间戳,得出请求在服务器处理的时延,如果超过设置的阈值,判断服务过载,丢掉请求。然而这两种过载保护方案都存在一定的局限性:使用请求量阈值控制方案,阈值设置困难,需要一定的经验,当服务处理能力变动时,阈值很难动态变动,该方案不适合批量推广。使用检查请求到达时间方案,当服务出现过载时很可能导致整体服务出现一个固定时延,导致后续请求时延大于设置的服务时延阈值,服务端主动抛弃请求到可执行的时延范围,服务出现过载时服务恢复到稳定时间不可控。
技术实现思路
本专利技术实施例提供了一种过载保护方法及装置,以实现服务端持续不断对外提供服务,缩短服务由过载到恢复的时间,提高服务框架的稳定性。第一方面,本专利技术实施例提供了一种过载保护方法,包括:在获取通信队列中的请求消息之后,判断当前服务端是否处于服务过载高水位;若当前服务端处于服务过载高水位,则丢弃所述请求消息;若当前服务端不在服务过载高水位,则根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。第二方面,本专利技术实施例还提供了一种过载保护装置,包括:第一判断模块,用于在获取通信队列中的请求消息之后,判断当前服务端是否处于服务过载高水位;第一丢弃模块,用于若当前服务端处于服务过载高水位,则丢弃所述请求消息;第二丢弃模块,用于若当前服务端不在服务过载高水位,则根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。本专利技术实施例提供的一种过载保护方法及装置,在获取通信队列中的请求消息之后,若判断当前服务端处于服务过载高水位,则丢弃请求消息;否则,根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃请求消息,由此可实现服务端持续不断对外提供服务,缩短服务由过载到恢复的时间,提高服务框架的稳定性。附图说明图1是本专利技术实施例一提供的一种过载保护方法的流程示意图;图2是本专利技术实施例二提供的一种过载保护方法的流程示意图;图3是本专利技术实施例三提供的一种过载保护方法的流程示意图;图4是本专利技术实施例四提供的一种过载保护方法的流程示意图;图5是本专利技术实施例五提供的一种过载保护装置的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的过载保护方法的流程图,本实施例可适用于对服务端接收的请求消息过载的情况,该方法可以过载保护装置来执行,具体包括如下步骤:步骤110、获取通信队列中的请求消息。目前,为了能够对客户端发送来的请求消息进行高效处理并及时反馈处理结果,服务端可采用Master/Slave架构模式,基于Master/Slave架构模式,服务端可架构成多进程架构模型或多线程架构模型。其中,Master作为主数据库服务器,主要功能是负责接收客户端发送的请求消息,并将其发送到通信队列,以便Slave从通信队列中获取请求消息,并对请求消息进行处理,将处理结果反馈给客户端。步骤120、判断当前服务端是否处于服务过载高水位,若是,则执行步骤130,否则执行步骤140。目前,一般以过载高水位、过载低水位来表示服务端处理请求消息的能力,过载低水位通常默认为1次请求,过载高水位可通过服务端吞吐量与服务队列等待阀值乘积计算得到,而在本实施例中,在不清空服务端请求消息的情况下,在服务端处理能力变动时,可通过配置文件动态的调整过载高水位的阈值,为服务端持续不断对外提供服务提供了保障。其中,服务队列等待阀值等于客户端超时时间减去服务端请求处理平均耗时的差的一半。Slave从通信队列获取请求消息后,立即判断当前服务端是否过载,也即是判断服务端是否处于服务过载高水位,并根据服务端所处的不同的状态来决定如何处理已获取的请求消息。步骤130、若当前服务端处于服务过载高水位,丢弃所述请求消息。若判断当前服务端处于服务过载高水位,即当前服务端已达到处理请求消息的上限,为保证服务端持续高效运行,从通信队列中丢弃部分请求消息,降低服务端的处理请求消息的压力。步骤140、当前服务端不在服务过载高水位,根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。当前服务端不在服务过载高水位,根据请求消息在通信队列的入队时间与当前时间比对,获得在请求消息的队列等待时间,并将之与服务队列等待阈值进行比较,若请求消息的队列等待时间大于服务队列等待阈值,则判定请求消息的队列等待时间过载,丢弃该请求消息,并将请求消息等待时间过载的消息反馈给客户端。如果请求消息的队列等待时间小于服务队列等待阈值,则判定请求消息的队列等待时间未过载,此时服务端处理该请求消息,并将处理结果反馈到客户端。在本实施例中,在获取通信队列中的请求消息之后,若判断当前服务端处于服务过载高水位,则丢弃请求消息;否则,根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃请求消息,由此可实现服务端持续不断对外提供服务,提高服务框架的稳定性。实施例二图2为本专利技术实施例二提供的一种过载保护方法的流程示意图。本实施例在上述实施例的基础上进行优化,判断当前服务端处于服务过载高水位,丢弃请求消息之后增加了以下步骤:记录高水位丢弃请求消息的数量;判断高水位丢弃请求消息的数量是否达到预设的过载恢复阈值,若是,则关闭服务过载高水位。由此,在丢弃请求消息之后,通过判断记录的高水位丢弃请求消息的数量是否达到预设的过载恢复阈值,来决定是否关闭服务过载高水位,以恢复服务端正常工作。相应的,本实施例的方法包括以下步骤:步骤210、获取通信队列中的请求消息。步骤220、判断当前服务端是否处于服务过载高水位,若是,则执行步骤230到步骤250,否则执行步骤260。步骤230、若当前服务端处于服务过载高水位丢,丢弃所述请求消息。步骤240、记录高水位丢弃请求消息的数量。在服务端处于服务过载高水位时,所丢请求消息数量可以是服务端根据实际过载情况自动判断所需丢弃请求消息的数量,还可用通过配置文件预先设置服务本文档来自技高网...
一种过载保护方法及装置

【技术保护点】
一种过载保护方法,其特征在于,包括:在获取通信队列中的请求消息之后,判断当前服务端是否处于服务过载高水位;若当前服务端处于服务过载高水位,则丢弃所述请求消息;若当前服务端不在服务过载高水位,则根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。

【技术特征摘要】
1.一种过载保护方法,其特征在于,包括:在获取通信队列中的请求消息之后,判断当前服务端是否处于服务过载高水位;若当前服务端处于服务过载高水位,则丢弃所述请求消息;若当前服务端不在服务过载高水位,则根据所述请求消息在所述通信队列的入队时间判断所述请求消息的队列等待时间是否过载,若是,则丢弃所述请求消息。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:记录高水位丢弃请求消息的数量;判断高水位丢弃请求消息的数量是否达到预设的过载恢复阈值,若是,则关闭服务过载高水位。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若判断所述请求消息的队列等待时间未过载,则处理请求消息,并返回处理结果到客户端。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:记录队列等待时间过载连续丢弃请求消息的数量;判断队列等待时间过载连续丢弃请求消息的数量是否达到过载高水位,若是,则开启服务过载高水位。5.根据权利要求1所述的方法,其特征在于,在获取通信队列中的请求消息之前,所述方法还包括:接收客户端发送的请求消息,并判断所述通信队列是否已满;若通信队列已满,则丢弃所述请求消息;若通信队列未满,则将当前时间戳设置为所述请求消息的入队时间字段,并发送所述请求消息到通信队列。6.一种过载保护装置,其特征在于,所述装置包括:第一判断模块,用于在获取通信队列中的请求消息...

【专利技术属性】
技术研发人员:彭明明
申请(专利权)人:深圳乐信软件技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1