CN110896382B - 流量控制方法、装置、设备和计算机可读存储介质 - Google Patents
流量控制方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110896382B CN110896382B CN201911284839.1A CN201911284839A CN110896382B CN 110896382 B CN110896382 B CN 110896382B CN 201911284839 A CN201911284839 A CN 201911284839A CN 110896382 B CN110896382 B CN 110896382B
- Authority
- CN
- China
- Prior art keywords
- service server
- interval
- service
- flow control
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
Abstract
本发明实施例提供了一种流量控制方法、装置、设备和计算机可读存储介质。该方法包括:监控业务服务器的设备数据;向控制器发送业务服务器的设备数据,以便控制器根据设备数据确定业务服务器所处的服务质量区间;接收控制器返回的与服务质量区间对应的流量控制指令,并通过执行流量控制指令,使业务服务器处理的请求数量小于或等于服务质量区间对应的最大处理量。根据业务服务器所处的服务质量区间的不同,采用不同的流量控制策略,这样在业务服务器的流量处理压力较大时,请求数量也不会超出业务服务器能够承受的最大处理量,始终保持业务服务器的服务可用并且稳定,避免业务服务器出现宕机的问题,更不会出现宕机后无法恢复的问题。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种流量控制方法、装置、设备和计算机可读存储介质。
背景技术
在以流量为中心的互联网服务中,存在一种流量突增的场景,在该场景下,服务资源的压力会突然增加。在集群中,如果服务资源压力突然增加,服务节点容易出现服务不稳定的问题,当一个服务节点因服务异常进而宕机之后,该服务节点的流量会被迁移到其他服务节点进行处理,如果其他服务节点也因为服务资源压力导致宕机,将会导致服务大面积故障,引发服务雪崩的问题。
在服务节点宕机之后,需要尽快恢复。目前,服务节点在重新启动之后会直接开始接收并处理流量,但是由于服务节点的资源初始化不充分,系统资源没有全部加载,使得该服务节点的流量处理能力很低,很容易再次宕机。进一步地,集群服务雪崩之后,第一个重新启动的服务节点会接收整个集群的流量,这类似于向该服务节点发起了一次DDOS(Distributed denial of service attack,分布式拒绝服务攻击),该服务节点由于处理流量的能力很低,会再次宕掉,而后续重新启动的服务节点也会遇到类似情况,这将导致整个集群无法恢复,在这种情况下,只能待集群中的所有服务节点都宕机之后集中重启,但是这将导致集群在一段时间内无法为用户提供服务,而且即便是集群中的各个服务节点集中重启,但是,由于在各个服务节点重启的初期,流量处理能力低,还会因为流量较大再次出现雪崩的问题。
发明内容
本发明实施例的目的在于提供一种流量控制方法、装置、设备和计算机可读存储介质,以解决流量突增时服务节点容易宕机且不易恢复的问题。
具体技术方案如下:
本发明实施的第一个方面,提供了一种流量控制方法,在业务服务器执行的步骤,包括:监控业务服务器的设备数据;向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间;接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;所述向控制器发送所述业务服务器的设备数据,包括:在所述业务服务器出现预设设备状态时,向所述控制器发送所述业务服务器的设备状态数据;和/或;每隔第一预设时间段向所述控制器上报一次所述业务服务器处理的请求数量数据。
其中,所述服务质量区间,包括:预热区间、稳定区间和可用区间;其中,所述流量控制指令,包括:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令;所述接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并执行所述流量控制指令,包括:如果接收到与所述预热区间对应的流量复制指令,则每隔第二预设时间段复制一次历史请求,使所述业务服务器处理所述历史请求;其中,每次复制的历史请求的数量大于前次复制的历史请求的数量;如果接收到与所述稳定区间对应的流量接收指令,则接收所述业务服务器对应的反向代理服务器发送的请求;如果接收到与所述可用区间对应的拒绝流量指令,则拒绝接收所述业务服务器对应的反向代理服务器发送的请求。
本发明实施的第二个方面,提供了一种流量控制方法,在控制器执行的步骤,包括:接收业务服务器发送的设备数据;根据所述设备数据,确定所述业务服务器所处的服务质量区间;获取预先为所述服务质量区间对应设置的流量控制策略;根据所述流量控制策略,向所述业务服务器发送流量控制指令,并控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;所述接收业务服务器发送的设备数据,包括:接收所述业务服务器发送的设备状态数据,或者,每隔第一预设时间段接收一次所述业务服务器上报的请求数量数据。
其中,所述服务质量区间,包括:预热区间、稳定区间和可用区间;所述根据所述设备数据,确定所述业务服务器所处的服务质量区间,包括:如果所述设备数据为设备状态数据,则确定所述业务服务器所处的服务质量区间为预热区间;如果所述设备数据为请求数量数据,则确定所述请求数量数据所处的服务质量区间;所述请求数量数据所处的服务质量区间为稳定区间或者可用区间。
其中,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:如果获取所述预热区间对应的流量控制策略,则向所述业务服务器发送流量复制指令,并且,向所述业务服务器对应的反向代理服务器发送第一消息,使所述反向代理服务器根据所述第一消息禁止上线所述业务服务器;如果获取所述可用区间对应的流量控制策略,则在所述请求数量数据等于第一预设值时,显示预设的设备扩容警告;在所述请求数量数据等于第二预设值时,向所述业务服务器发送拒绝流量指令;和/或,向所述反向代理服务器发送第二消息,使所述反向代理服务器将所述业务服务器上的预设数量的请求迁移到其他业务服务器。
其中,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:如果获取所述稳定区间对应的流量控制策略,则比较所述业务服务器本次所处的服务质量区间与所述业务服务器前次所处的服务质量区间;如果所述服务质量区间从预热区间变化到稳定区间,则向所述业务服务器发送流量接收指令,并且向所述业务服务器对应的反向代理服务器发送第三消息,使所述反向代理服务器根据所述第三消息上线所述业务服务器。
本发明实施的第三个方面,提供了一种流量控制装置,设置在业务服务器,包括:监控模块,用于监控业务服务器的设备数据;第一发送模块,用于向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间;第一接收模块,用于接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
本发明实施的第四个方面,提供了一种流量控制装置,设置在控制器,包括:第二接收模块,用于接收业务服务器发送的设备数据;确定模块,用于根据所述设备数据,确定所述业务服务器所处的服务质量区间;获取模块,用于获取预先为所述服务质量区间对应设置的流量控制策略;控制模块,用于根据所述流量控制策略,向所述业务服务器发送流量控制指令,并根据所述流量控制指令的种类,控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
本发明实施的第五个方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。
本发明实施的第六个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现上述在业务服务器执行的任一所述的方法步骤,或者,实现上述在控制器执行的任一所述的方法步骤。
本发明实施的第七个方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述在业务服务器执行的任一所述的方法步骤,或者,执行上述在控制器执行的任一所述的方法步骤。
本发明实施例提供的一种流量控制方法、装置、设备和计算机可读存储介质,根据业务服务器的服务质量和流量的关系,划分多个服务质量区间,根据业务服务器处理的请求数量,确定业务服务器所处的服务质量区间,根据业务服务器所处的服务质量区间的不同,采用不同的流量控制策略,这样在业务服务器的流量处理压力较大时,请求数量也不会超出业务服务器能够承受的最大处理量,即便业务服务器的服务质量开始下降,也可以平滑地恢复到稳定区间,始终保持业务服务器的服务可用并且稳定,避免业务服务器出现宕机的问题,更不会出现宕机后无法恢复的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为根据本发明一实施例的服务质量和流量的关系示意图;
图2为根据本发明一实施例的在业务服务器执行的流量控制方法的流程图;
图3为根据本发明一实施例的在控制器执行的流量控制方法的流程图;
图4为根据本发明一实施例的流量控制系统的结构示意图;
图5为根据本发明一实施例的设置在业务服务器的流量控制装置的结构图;
图6为根据本发明一实施例的设置在控制器的流量控制装置的结构图;
图7为根据本发明一实施例的电子设备的结构图。
具体实施方式
本发明实施例的主要思想在于,预先分析业务服务器从启动到宕机的过程中,业务服务器在不同服务质量下可以处理的流量,确定服务质量和流量的关系;根据服务质量和流量的关系,将业务服务器可以处理的流量范围划分为多个服务质量区间;每个服务质量区间的两个端值分别是业务服务器在服务质量区间可承受的最小处理量和最大处理量;根据业务服务器所处服务质量区间的不同,对业务服务器采取不同的流量控制策略,使业务服务器处理的流量始终小于或等于业务服务器在所处服务质量区间所能承受的最大处理量。
在本发明实施例中,服务质量为业务服务器在接收的请求中成功处理的请求和接收的请求总数的比值。
如图1所示,为根据本发明一实施例的服务质量和流量的关系示意图。
在图1所示的坐标系中,横坐标为流量,纵坐标为业务服务器的服务质量。
在本发明实施例中,将业务服务器可以处理的流量范围划分为预热区间、稳定区间和可用区间。
预热区间[0,m],是指业务服务器的服务质量的上升区间,业务服务器在预热区间的最大处理量为m,m为正整数。业务服务器启动之后进入预热区间,业务服务器在预热区间资源初始化不充分,处理能力低下,随着业务服务器的资源初始化完成,业务服务器的服务质量不断上升。在预热区间,使业务服务器在预热区间暂不上线,即不处理反向代理服务器的流量。
稳定区间(m,n],是指业务服务器的服务质量的稳定区间,业务服务器在稳定区间的最大处理量为n,n为正整数。在稳定区间内,业务服务器的服务质量依旧保持稳定,可处理的流量范围较大。在稳定区间可以将业务服务器上线。
可用区间(n,z],是指业务服务器的服务质量的下降区间,业务服务器在可用区间的最大处理量为z,z为正整数。在可用区间内,业务服务器的服务质量开始下降,可处理的流量也随服务质量的下降而下降,但是在可用区间业务服务器本身的性能较为稳定,不存在宕机的风险。如果业务服务器处理的流量超过z,则业务服务器将出现处理能力不足的问题,继而出现宕机的风险。在可用区间,需要进行流量控制,避免业务服务器处理的流量超过z。
根据业务服务器的服务质量和流量的关系,可以得到各个服务质量区间对应的服务质量表达式:
预热区间:y=ax2;x∈[0,m];
可用区间:y=dx;x∈(n,z];
其中,y表示服务质量,x表示流量,a、b、c和d为系数,m、n和z为预热区间、稳定区间和可用区间的划分节点。a、b、c、d、m、n和z可以在业务服务器多次全流程处理流量的过程中确定,全流程处理流量是指从启动到宕机的过程。
本领域技术人员应当知道的是,上述表达式仅为说明本发明实施例,而不用于限定本发明实施例。
基于上述服务质量区间的概念,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供了一种在业务服务器执行的流量控制方法。如图2所示,为根据本发明一实施例的在业务服务器执行的流量控制方法的流程图。
步骤S210,监控业务服务器的设备数据。
业务服务器,用于提供web服务,处理来自反向代理服务器(Nginx)的流量,并对流量进行对应处理。其中,反向代理服务器的流量来自客户端。
业务服务器的种类,包括但不限于:Tomcat服务器。
设备数据,包括:请求数量数据和/或设备状态数据。
请求数量数据,包括但不限于:业务服务器处理的请求的数量。
设备状态数据,包括但不限于:资源占用率,应用部署及上线数据。
请求数量数据可以用于反映业务服务器当前处理的流量大小,设备状态数据可以用于反映业务服务器当前的状态是否需要暂停服务。
在本实施例中,流量可以用QPS(Queries-per-second,每秒查询率)来表示。QPS用于衡量业务服务器在单位时间内处理的请求数量。
步骤S220,向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间。
控制器,用于对业务服务器进行流量控制。
服务质量区间,包括:预热区间、稳定区间和可用区间。
在业务服务器出现预设设备状态时,向控制器发送该业务服务器的设备状态数据;和/或;每隔第一预设时间段向控制器上报一次该业务服务器处理的请求数量数据。进一步地,预设设备状态是指业务服务器的暂时不能提供web服务时的状态。例如:在业务服务器启动时,或者,在业务服务器的资源占用率大于阈值时,或者,在业务服务器新应用部署完成并即将上线,或者,在业务服务器新应用上线完成时,向控制器发送业务服务器的状态数据。
第一预设时间段的时间长度可以是经验值或者经过试验获得的值,例如:第一预设时间段的时间长度为3秒钟。
步骤S230,接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
流量控制指令,包括但不限于:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令。
如果接收到与预热区间对应的流量复制指令,则每隔第二预设时间段复制一次历史请求,使业务服务器处理所述历史请求;其中,每次复制的历史请求的数量大于前次复制的历史请求的数量。第二预设时间段的时间长度为经验值或者经过试验获得的值。例如:经过第二预设时间段可以使业务服务器将前一次复制的历史请求处理完成。在复制的数量上,每次复制不同数量的历史请求,为了配合业务服务器的服务质量的增加速度,逐渐增加流量的大小,使每次复制的数量大于前次复制的数量。又如:每次复制前一次的两倍,第一次复制100条历史请求,第二次复制200条历史请求,第三次复制400条历史请求。
如果接收到与稳定区间对应的流量接收指令,则接收业务服务器对应的反向代理服务器发送的请求。
如果接收到与可用区间对应的拒绝流量指令,则拒绝接收所述业务服务器对应的反向代理服务器发送的请求。
在接收到流量复制指令时,表示业务服务器在预热区间内,控制器使业务服务器对应的反向代理服务器禁止上线该业务服务器,这时,业务服务器将不会接收到来自反向代理服务器的请求,从而可以避免业务服务器在预热区间接收大量的请求。
在接收到流量接收指令时,表示业务服务器进入稳定区间,控制器使业务服务器对应的反向代理服务器上线该业务服务器。由于在稳定区间内业务服务器的服务质量较为稳定,可以处理较多流量,因此可以处理来自反向代理服务器的请求。
在接收到拒绝流量指令时,表示业务服务器当前处理的流量已经达到可用区间的最大处理量,如果流量继续增长,即请求数量继续增长,业务服务器的服务质量将继续下降,存在宕机的风险,所以在该拒绝流量指令的控制下,拒绝接收请求,直到接收到控制器发送的流量接收指令或者流量复制指令为止。
在本实施例中,根据业务服务器的服务质量和流量的关系,划分多个服务质量区间,根据业务服务器处理的请求数量,确定业务服务器所处的服务质量区间,根据业务服务器所处的服务质量区间的不同,采用不同的流量控制策略,这样在业务服务器的流量处理压力较大时,请求数量也不会超出业务服务器能够承受的最大处理量,即便业务服务器的服务质量开始下降,也可以平滑地恢复到稳定区间,始终保持业务服务器的服务可用并且稳定,避免业务服务器出现宕机的问题,更不会出现宕机后无法恢复的问题。
基于上述实施例,还提供了一种在控制器执行的流量控制方法。如图3所示,为根据本发明一实施例的在控制器执行的流量控制方法的流程图。
步骤S310,接收业务服务器发送的设备数据。
设备数据,包括:请求数量数据和/或设备状态数据。
接收业务服务器发送的设备状态数据,或者,每隔第一预设时间段接收一次所述业务服务器上报的请求数量数据。
步骤S320,根据所述设备数据,确定所述业务服务器所处的服务质量区间。
在本实施例中,服务质量区间,包括:预热区间、稳定区间和可用区间。
如果所述设备数据为设备状态数据,则确定所述业务服务器所处的服务质量区间为预热区间。进一步地,在业务服务器暂时不能提供web服务时,可以将业务服务器确定为预热区间,使得反向代理服务器暂不上线业务服务器。
如果所述设备数据为请求数量数据,则确定所述请求数量数据所处的服务质量区间;所述请求数量数据所处的服务质量区间为稳定区间或者可用区间。
步骤S330,获取预先为所述服务质量区间对应设置的流量控制策略。
流量控制策略,用于根据业务服务器在所处的服务质量区间内可处理的流量大小,向业务服务器发送该服务质量区间对应的流量控制指令,使业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
步骤S340,根据所述流量控制策略,向所述业务服务器发送流量控制指令,并控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
如果获取所述预热区间对应的流量控制策略,则向所述业务服务器发送流量复制指令,并且,向所述业务服务器对应的反向代理服务器发送第一消息,使所述反向代理服务器根据所述第一消息禁止上线所述业务服务器。
如果获取所述可用区间对应的流量控制策略,则在所述请求数量数据等于第一预设值时,显示预设的设备扩容警告;在所述请求数量数据等于第二预设值时,向所述业务服务器发送拒绝流量指令;和/或,向所述反向代理服务器发送第二消息,使所述反向代理服务器将所述业务服务器上的预设数量的请求迁移到其他业务服务器。进一步地,该预设数量可以为经验值或者通过试验获得的值,例如:迁移30%的请求。
如果获取所述稳定区间对应的流量控制策略,则比较所述业务服务器本次所处的服务质量区间与所述业务服务器前次所处的服务质量区间;如果所述服务质量区间从预热区间变化到稳定区间,则向所述业务服务器发送流量接收指令,并且向所述业务服务器对应的反向代理服务器发送第三消息,使所述反向代理服务器根据所述第三消息上线所述业务服务器。
基于本发明实施例,无论流量增加到多少,突增的速度多快,都不会引发服务资源故障。对WEB服务整体高压时,服务不稳定状态下,采用本实施例的流量控制方法可以保持服务稳定,避免出现雪崩现象,即便是已经出现雪崩迹象,在开始采用本实施例之后,也能够平滑地恢复服务,从而避免了服务雪崩后无法恢复的问题。
为了使本发明实施例的流量控制方法更清楚,下面基于流量控制系统对本发明实施例的流量控制方法进行进一步地描述。
如图4所示,为根据本发明一实施例的流量控制系统的结构示意图。
在该流量控制系统中,包括:LVS(Linux Virtual Serve,Linux虚拟服务器)、多个Nginx服务器、多个Tomcat服务器以及一个控制器。其中,多个Nginx服务器分别与LVS连接,每个Nginx服务器连接多个Tomcat服务器。
在每个Nginx服务器和每个Tomcat服务器中设置处理器。下面以Tomcat2为例进行描述。
Tomcat2中的处理器监测Tomcat2的设备数据,向控制器发送Tomcat2的设备数据。
控制器接收Tomcat2中的处理器发送的设备数据;根据所述设备数据,确定所述业务服务器所处的服务质量区间;获取预先为所述服务质量区间对应设置的流量控制策略。具体如下:
如果设备数据为设备状态数据,则控制确定Tomcat2所处的服务质量区间为预热区间;向Tomcat2中的处理器发送流量复制指令,并且,向Nginx1中的处理器和Nginx2中的处理器发送第一消息,使Nginx1和Nginx2禁止上线Tomcat2。
如果设备数据为请求数量数据,则确定请求数量数据所处的服务质量区间是稳定区间还是可用区间。
如果服务质量区间为稳定区间,则比较Tomcat2本次所处的服务质量区间与Tomcat2前次所处的服务质量区间;如果服务质量区间从预热区间变化到稳定区间,则向Tomcat2中的处理器发送流量接收指令,并且向Nginx1中的处理器和Nginx2中的处理器发送第三消息,使Nginx1和Nginx2上线Tomcat2。
如果服务质量区间为可用区间,则在请求数量数据等于第一预设值(n)时,显示预设的设备扩容警告;在请求数量数据等于第二预设值(z)时,向Tomcat2中的处理器发送拒绝流量指令;和/或,向Nginx1中的处理器和Nginx2中的处理器发送第二消息,使Nginx1和Nginx2将Tomcat2上的部分请求迁移到Tomcat1和/或Tomcat3。
Tomcat2中的处理器接收控制器返回的流量控制指令并执行流量控制指令。
本发明实施例还提供了一种设置在业务服务器的流量控制装置。如图5所示,为根据本发明一实施例的设置在业务服务器的流量控制装置的结构图。
该设置在业务服务器的流量控制装置,包括:监控模块510,第一发送模块520和第一接收模块530。
监控模块510,用于监控业务服务器的设备数据。
第一发送模块520,用于向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间。
第一接收模块530,用于接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
本发明实施例所述的装置的功能已经在上述在业务服务器侧执行的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例还提供了一种设置在控制器的流量控制装置。如图6所示,为根据本发明一实施例的设置在控制器的流量控制装置的结构图。
该设置在控制器的流量控制装置,包括:第二接收模块610,确定模块620,获取模块630和控制模块640。
第二接收模块610,用于接收业务服务器发送的设备数据。
确定模块620,用于根据所述设备数据,确定所述业务服务器所处的服务质量区间。
获取模块630,用于获取预先为所述服务质量区间对应设置的流量控制策略。
控制模块640,用于根据所述流量控制策略,向所述业务服务器发送流量控制指令,并控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
本发明实施例所述的装置的功能已经在上述在控制器侧执行的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器710、通信接口720、存储器730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信,
存储器730,用于存放计算机程序;
处理器710,用于执行存储器730上所存放的程序时,实现在业务服务器执行的流量控制方法或者在控制器执行的流量控制方法。
具体的,在业务服务器执行的步骤,包括:监控业务服务器的设备数据;向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间;接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;所述向控制器发送所述业务服务器的设备数据,包括:在所述业务服务器出现预设设备状态时,向所述控制器发送所述业务服务器的设备状态数据;和/或;每隔第一预设时间段向所述控制器上报一次所述业务服务器处理的请求数量数据。
其中,所述服务质量区间,包括:预热区间、稳定区间和可用区间;其中,所述流量控制指令,包括:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令;所述接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并执行所述流量控制指令,包括:如果接收到与所述预热区间对应的流量复制指令,则每隔第二预设时间段复制一次历史请求,使所述业务服务器处理所述历史请求;其中,每次复制的历史请求的数量大于前次复制的历史请求的数量;如果接收到与所述稳定区间对应的流量接收指令,则接收所述业务服务器对应的反向代理服务器发送的请求;如果接收到与所述可用区间对应的拒绝流量指令,则拒绝接收所述业务服务器对应的反向代理服务器发送的请求。
在控制器执行的步骤,包括:接收业务服务器发送的设备数据;根据所述设备数据,确定所述业务服务器所处的服务质量区间;获取预先为所述服务质量区间对应设置的流量控制策略;根据所述流量控制策略,向所述业务服务器发送流量控制指令,并控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量。
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;所述接收业务服务器发送的设备数据,包括:接收所述业务服务器发送的设备状态数据,或者,每隔第一预设时间段接收一次所述业务服务器上报的请求数量数据。
其中,所述服务质量区间,包括:预热区间、稳定区间和可用区间;所述根据所述设备数据,确定所述业务服务器所处的服务质量区间,包括:如果所述设备数据为设备状态数据,则确定所述业务服务器所处的服务质量区间为预热区间;如果所述设备数据为请求数量数据,则确定所述请求数量数据所处的服务质量区间;所述请求数量数据所处的服务质量区间为稳定区间或者可用区间。
其中,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:如果获取所述预热区间对应的流量控制策略,则向所述业务服务器发送流量复制指令,并且,向所述业务服务器对应的反向代理服务器发送第一消息,使所述反向代理服务器根据所述第一消息禁止上线所述业务服务器;如果获取所述可用区间对应的流量控制策略,则在所述请求数量数据等于第一预设值时,显示预设的设备扩容警告;在所述请求数量数据等于第二预设值时,向所述业务服务器发送拒绝流量指令;和/或,向所述反向代理服务器发送第二消息,使所述反向代理服务器将所述业务服务器上的预设数量的请求迁移到其他业务服务器。
其中,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:如果获取所述稳定区间对应的流量控制策略,则比较所述业务服务器本次所处的服务质量区间与所述业务服务器前次所处的服务质量区间;如果所述服务质量区间从预热区间变化到稳定区间,则向所述业务服务器发送流量接收指令,并且向所述业务服务器对应的反向代理服务器发送第三消息,使所述反向代理服务器根据所述第三消息上线所述业务服务器。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量控制方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的流量控制方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种流量控制方法,其特征在于,在业务服务器执行的步骤,包括:
监控业务服务器的设备数据;
向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间;
接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量;
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;
所述服务质量区间,包括:预热区间、稳定区间和可用区间;
所述流量控制指令,包括:与所述预热区间对应的流量复制指令、与所述稳定区间对应的流量接收指令以及与所述可用区间对应的拒绝流量指令。
2.根据权利要求1所述的方法,其特征在于,
所述向控制器发送所述业务服务器的设备数据,包括:
在所述业务服务器出现预设设备状态时,向所述控制器发送所述业务服务器的设备状态数据;和/或;
每隔第一预设时间段向所述控制器上报一次所述业务服务器处理的请求数量数据。
3.根据权利要求1所述的方法,其特征在于,
所述接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并执行所述流量控制指令,包括:
如果接收到与所述预热区间对应的流量复制指令,则每隔第二预设时间段复制一次历史请求,使所述业务服务器处理所述历史请求;其中,每次复制的历史请求的数量大于前次复制的历史请求的数量;
如果接收到与所述稳定区间对应的流量接收指令,则接收所述业务服务器对应的反向代理服务器发送的请求;
如果接收到与所述可用区间对应的拒绝流量指令,则拒绝接收所述业务服务器对应的反向代理服务器发送的请求。
4.一种流量控制方法,其特征在于,在控制器执行的步骤,包括:
接收业务服务器发送的设备数据;
根据所述设备数据,确定所述业务服务器所处的服务质量区间;
获取预先为所述服务质量区间对应设置的流量控制策略;
根据所述流量控制策略,向所述业务服务器发送流量控制指令,并控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量;
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;
所述服务质量区间,包括:预热区间、稳定区间和可用区间;
所述流量控制指令,包括:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令。
5.根据权利要求4所述的方法,其特征在于,
所述接收业务服务器发送的设备数据,包括:
接收所述业务服务器发送的设备状态数据,或者,每隔第一预设时间段接收一次所述业务服务器上报的请求数量数据。
6.根据权利要求5所述的方法,其特征在于,
所述根据所述设备数据,确定所述业务服务器所处的服务质量区间,包括:
如果所述设备数据为设备状态数据,则确定所述业务服务器所处的服务质量区间为预热区间;
如果所述设备数据为请求数量数据,则确定所述请求数量数据所处的服务质量区间;所述请求数量数据所处的服务质量区间为稳定区间或者可用区间。
7.根据权利要求4所述的方法,其特征在于,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:
如果获取所述预热区间对应的流量控制策略,则向所述业务服务器发送流量复制指令,并且,向所述业务服务器对应的反向代理服务器发送第一消息,使所述反向代理服务器根据所述第一消息禁止上线所述业务服务器;
如果获取所述可用区间对应的流量控制策略,则在所述请求数量数据等于第一预设值时,显示预设的设备扩容警告;在所述请求数量数据等于第二预设值时,向所述业务服务器发送拒绝流量指令;和/或,向所述反向代理服务器发送第二消息,使所述反向代理服务器将所述业务服务器上的预设数量的请求迁移到其他业务服务器。
8.根据权利要求4所述的方法,其特征在于,所述根据所述流量控制策略向所述业务服务器发送流量控制指令,包括:
如果获取所述稳定区间对应的流量控制策略,则比较所述业务服务器本次所处的服务质量区间与所述业务服务器前次所处的服务质量区间;如果所述服务质量区间从预热区间变化到稳定区间,则向所述业务服务器发送流量接收指令,并且向所述业务服务器对应的反向代理服务器发送第三消息,使所述反向代理服务器根据所述第三消息上线所述业务服务器。
9.一种流量控制装置,其特征在于,设置在业务服务器,包括:
监控模块,用于监控业务服务器的设备数据;
第一发送模块,用于向控制器发送所述业务服务器的设备数据,以便所述控制器根据所述设备数据确定所述业务服务器所处的服务质量区间;
第一接收模块,用于接收所述控制器返回的与所述服务质量区间对应的流量控制指令,并通过执行所述流量控制指令,使所述业务服务器处理的请求数量小于或等于所述服务质量区间对应的最大处理量;
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;
所述服务质量区间,包括:预热区间、稳定区间和可用区间;
所述流量控制指令,包括:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令。
10.一种流量控制装置,其特征在于,设置在控制器,包括:
第二接收模块,用于接收业务服务器发送的设备数据;
确定模块,用于根据所述设备数据,确定所述业务服务器所处的服务质量区间;
获取模块,用于获取预先为所述服务质量区间对应设置的流量控制策略;
控制模块,用于根据所述流量控制策略,向所述业务服务器发送流量控制指令,并根据所述流量控制指令的种类,控制所述业务服务器对应的反向代理服务器对所述业务服务器进行流量控制,使所述业务服务器在执行所述流量控制指令之后,处理的请求数量小于或等于所述服务质量区间对应的最大处理量;
其中,所述设备数据,包括:请求数量数据和/或设备状态数据;
所述服务质量区间,包括:预热区间、稳定区间和可用区间;
所述流量控制指令,包括:与所述预热区间对应的流量复制指令,与所述稳定区间对应的流量接收指令,以及与所述可用区间对应的拒绝流量指令。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤,或者,实现权利要求4-8任一所述的方法步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现权利要求1-3任一所述的方法步骤,或者,实现权利要求4-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284839.1A CN110896382B (zh) | 2019-12-13 | 2019-12-13 | 流量控制方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284839.1A CN110896382B (zh) | 2019-12-13 | 2019-12-13 | 流量控制方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110896382A CN110896382A (zh) | 2020-03-20 |
CN110896382B true CN110896382B (zh) | 2023-06-30 |
Family
ID=69788122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911284839.1A Active CN110896382B (zh) | 2019-12-13 | 2019-12-13 | 流量控制方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110896382B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113783799A (zh) * | 2020-06-09 | 2021-12-10 | 马上消费金融股份有限公司 | 一种流量控制方法及装置 |
CN113315718B (zh) * | 2021-03-31 | 2023-11-14 | 阿里巴巴新加坡控股有限公司 | 自适应限流的系统、方法和装置 |
CN115118785B (zh) * | 2022-08-29 | 2023-01-06 | 太平金融科技服务(上海)有限公司深圳分公司 | 服务器资源保护方法、装置、设备、介质和程序产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391299B (zh) * | 2012-05-08 | 2016-09-28 | 深圳市腾讯计算机系统有限公司 | 负载均衡方法和负载均衡系统 |
CN104753805B (zh) * | 2013-12-31 | 2018-07-24 | 腾讯科技(深圳)有限公司 | 分布式流量控制方法、服务器和系统 |
CN108156091A (zh) * | 2016-12-02 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及系统 |
CN108667663A (zh) * | 2018-05-17 | 2018-10-16 | 北京五八信息技术有限公司 | 流量调整方法、相应装置、平台、系统、设备及存储介质 |
CN110166376B (zh) * | 2019-06-06 | 2022-11-01 | 北京百度网讯科技有限公司 | 流量控制方法及装置、系统、服务器、计算机可读介质 |
-
2019
- 2019-12-13 CN CN201911284839.1A patent/CN110896382B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110896382A (zh) | 2020-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110896382B (zh) | 流量控制方法、装置、设备和计算机可读存储介质 | |
US9262287B2 (en) | Computer information system and dynamic disaster recovery method therefor | |
CN110830283B (zh) | 故障检测方法、装置、设备和系统 | |
CN107508694B (zh) | 一种集群内的节点管理方法及节点设备 | |
CN109327544B (zh) | 一种领导节点的确定方法和装置 | |
US20130346513A1 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
US20130204926A1 (en) | Information processing system, information processing device, client terminal, and computer readable medium | |
CN112671928A (zh) | 设备集中管理架构、负载均衡方法、电子设备及存储介质 | |
CN106797330B (zh) | 用于监测内容递送网络(cdn)的方法、业务监测器(tm)、请求路由器(rr)和系统 | |
CN111897550B (zh) | 镜像预加载方法、设备及存储介质 | |
CN110096305B (zh) | 灰度发布方法、装置、设备及存储介质 | |
CN110858986A (zh) | 带宽调整方法、装置、通信设备及计算机可读存储介质 | |
CN111556125B (zh) | 一种访问请求分配方法、负载均衡设备及电子设备 | |
CN108111630B (zh) | 一种Zookeeper集群系统及其连接方法和系统 | |
WO2021135795A1 (zh) | 报文处理方法、中继设备、系统和存储介质 | |
CN107645396B (zh) | 一种集群扩容方法及装置 | |
CN114143330A (zh) | 一种时间服务器的配置方法、装置及系统 | |
CN111865722B (zh) | 一种节点健康状态检测及处理方法 | |
CN111934909A (zh) | 主备机ip资源切换方法、装置、计算机设备和存储介质 | |
WO2020037607A1 (zh) | 一种传输数据的方法和装置 | |
CN111352803A (zh) | 业务数据处理方法、装置、设备和存储介质 | |
CN110620736A (zh) | 一种流量调度的方法及装置 | |
CN113839836B (zh) | 聚合超时保护方法、框式设备、盒式设备及存储介质 | |
CN110221916B (zh) | 一种内存扩容方法、装置、配置中心系统及电子设备 | |
CN115065723B (zh) | 用于网络容灾的数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |