一种基于WEB的流量限制方法及系统与流程

文档序号:14574542发布日期:2018-06-02 01:11阅读:242来源:国知局
一种基于WEB的流量限制方法及系统与流程

本发明实施例涉及视频技术领域,尤其涉及一种基于WEB的限流方法及系统。



背景技术:

对于软件及服务(Software-as-a-Service,简称SAAS)的服务平台,开放WEB API往往会对多个使用方提供服务,在提供服务过程中需要限制使用方对服务的请求量,以免某一使用方调用量过大,从而影响其他使用方,进而影响整体服务的稳定性。

WEB服务是当今互联网应用给用户或者第三方提供数据的主要方式,一般通过http、https等方式。例如,一个电商网站中所有跟商品相关的内容的组成即为一个服务。

图1为现有技术提供的流量限制方法示意图,如图1所示,通过Nginx/F5等负载均衡方案,通过服务网关中配置,其限流的流程为:步骤101:客户端向Nginx发送一个请求,请求中包括了请求数,即每秒查询率;步骤102:Nginx对该请求进行校验,判断该请求是否符合限流特征;步骤103:根据判断结果进行限流控制;如果发现该请求符合限流特征,则将该请求发送给web服务器,web服务器对该请求进行处理,并将对应的数据通过Nginx返回给客户端;如果经过Nginx校验发现该请求不符合限流特征,则直接向客户端返回一个错误码。该方法的缺点是,需要由研发和运维人员共同操作,当限流配置修改后需要网关组件上限,十分不方便,因此其限流配置的修改成本很大。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种基于WEB的限流方法及系统。

第一方面,本发明实施例提供一种基于WEB的流量限制方法,包括:

配置中心接收用户修改的限流配置,并将所述限流配置发送至配置同步集群;

所述配置同步集群接收所述限流配置,并将所述限流配置同步到设有限流器的WEB服务器中;

所述设有限流器的WEB服务器接收所述限流配置和来自客户端的请求,根据所述限流配置对所述请求进行流量限制。

第二方面,本发明实施例提供一种基于WEB的流量限制系统,包括配置中心、配置同步集群和设有限流器的WEB服务器;其中,

所述配置中心,用于接收用户修改的限流配置,并将所述限流配置发送给所述配置同步集群;

所述配置同步集群,用于接收所述配置中心发送的所述限流配置,并将所述限流配置同步到所述设有限流器的WEB服务器中;

所述设有限流器的WEB服务器,用于接收所述配置同步集群发送的所述限流配置和来自客户端的请求,并根据所述限流配置对所述请求进行流量限制。

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,

所述处理器和所述存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。

本发明实施例提供的一种基于WEB的限流方法及系统,通过设有限流器的WEB服务器接收配置同步集群发送的限流配置,实现配置更新,并根据限流配置对客户端发送的请求进行流量限制,只需要研发人员通过可配置的方式进行热部署,极大提高了系统稳定性,并使限流的生效更加灵活。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供的流量限制方法示意图;

图2为本发明实施例提供的一种基于WEB的流量限制方法流程示意图;

图3为本发明实施例提供的一种基于WEB的流量限制系统结构示意图;

图4为本发明另一实施例提供的一种基于WEB的流量限制系统结构示意图;

图5为本发明实施例提供的电子设备实体结构示意图。

具体实施方式

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

图2为本发明实施例提供的一种基于WEB的流量限制方法流程示意图,如图2所示,所述方法,包括:

步骤201:配置中心接收用户修改的限流配置,并将所述限流配置发送至配置同步集群;

具体的,配置中心是用户进行限流配置修改的后台,因此,当用户通过配置中心进行修改限流配置时,配置中心接收到用户修改的限流配置。配置中心与配置同步集群通信连接,将接收到的限流配置发送至配置同步集群中。应当说明的是,用户可以是服务管理人员,也可以是研发人员。限流配置是用来对客户端的请求进行流量限制的。

步骤202:所述配置同步集群接收所述限流配置,并将所述限流配置同步到设有限流器的WEB服务器中;

具体的,配置同步集群接收配置中心发送的限流配置,并实时将限流配置同步到设有限流器的WEB服务器中。配置同步集群能够保证在限流配置发生修改后能够实时更新到其他所用引用该限流配置的节点。

步骤203:所述设有限流器的WEB服务器接收所述限流配置和来自客户端的请求,根据所述限流配置对所述请求进行流量限制。

具体的,在WEB服务器内设置有限流器,称为设有限流器的WEB服务器,限流器的主要功能使按照预先确定的限流条件,判断当前请求是否应该被处理。且限流器运行于WEB容器中,设有限流器的WEB服务器接收来自客户端的请求,根据限流配置对该请求进行流量限制。

本发明实施例通过设有限流器的WEB服务器接收配置同步集群发送的限流配置,实现配置更新,并根据限流配置对客户端发送的请求进行流量限制,只需要研发人员通过可配置的方式进行热部署,极大提高了系统稳定性,并使限流的生效更加灵活。

在上述实施例的基础上,所述方法,还包括:

负载均衡器接收客户端发送的所述请求,并将所述请求发送至所述设有限流器的WEB服务器。

具体的,用户通过客户端发送请求,该请求首先被负载均衡器接收,负载均衡器根据各个设有限流器的WEB服务器当前的负载情况,对该请求进行重定向,将其发送给合适的设有限流器的WEB服务器,由该设有限流器的WEB服务器对该请求进行处理。

本发明实施例通过在客户端和设有限流器的WEB服务器之间设有负载均衡器,用来将请求分散到多个可用的设有限流器的WEB服务器中,使多个设有限流器的WEB服务器的负载得到一个平衡,从而提高了系统的稳定性。

在上述实施例的基础上,所述请求包括每秒查询率,所述根据所述限流配置对所述请求进行流量限制,包括:

根据所述限流配置若判断获知所述每秒查询率符合限流条件,则向所述客户端返回对应的返回数据;

根据所述限流配置若判断获知所述每秒查询率不符合限流条件,则向所述客户端返回错误码。

根据所述限流配置若判断获知所述每秒查询率符合限流条件,则向所述客户端返回对应的返回数据;

根据所述限流配置若判断获知所述每秒查询率不符合限流条件,则向所述客户端返回错误码。

具体的,限流配置中包括限流条件,主要为每秒查询率,即限制用户请求中的每秒查询率在某个阈值范围内。即设有限流器的WEB服务器在接收到请求后,对该请求进行解析,获得对应的每秒查询率,如果判断获知用户请求中的每秒查询率在限流条件中的每秒查询率的阈值范围内,则说明该请求的每秒查询率符合限流条件,此时设有限流器的WEB服务器可以处理该请求,并将该请求对应的数据返回给客户端。如果判断获知用户请求中的每秒查询率大于限流条件中的每秒查询率的阈值范围,则说明该请求的每秒查询率不符合限流条件,此时设有限流器的WEB服务器向发送该请求的客户端返回错误码。

本发明实施例通过设有限流器的WEB服务器中的限流配置来判断请求中的每秒查询率是否符合限流条件,并将符合限流条件的请求对应的数据返回给客户端,从而限制了每秒查询率特别大的用户的请求,保证了网络的稳定性。

在上述各实施例的基础上,所述根据所述限流配置对所述请求进行流量限制,包括:

利用漏桶算法或令牌桶算法构建所述限流配置,根据所述限流配置对所述请求进行流量限制。

具体的,限流配置中可以通过漏桶算法或令牌桶算法来构建,然后根据限流配置对请求进行流量限制。应当说明的是,漏桶算法是网络世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)时经常使用的一种算法,它的主要目的是控制数据注入到网络的速率,平滑网络上的突发流量。漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。

以令牌桶为例:令牌桶算法的基本过程如下:

假如用户配置的平均发送速率为r,则每隔1/r秒一个令牌被加入到桶中;

假设桶最多可以存发b个令牌。如果令牌到达时令牌桶已经满了,那么这个令牌会被丢弃;

当一个n个字节的数据包到达时,就从令牌桶中删除n个令牌,并且数据包被发送到网络;

如果令牌桶中少于n个令牌,那么不会删除令牌,并且认为这个数据包在流量限制之外;

算法允许最长b个字节的突发,但从长期运行结果看,数据包的速率被限制成常量r。

对于在流量限制外的数据包可以以不同的方式处理:

它们可以被丢弃;

它们可以排放在队列中以便当令牌桶中累积了足够多的令牌时再传输;

它们可以继续发送,但需要做特殊标记,网络过载的时候将这些特殊标记的包丢弃。

本发明实施例通过设有限流器的WEB服务器接收配置同步集群发送的限流配置,实现配置更新,并根据限流配置对客户端发送的请求进行流量限制,只需要研发人员通过可配置的方式进行热部署,极大提高了系统稳定性,并使限流的生效更加灵活。

图3为本发明实施例提供的一种基于WEB的流量限制系统结构示意图,如图3所示,所述系统,包括:配置中心301、配置同步集群302和设有限流器的WEB服务器303,其中,

所述配置中心301用于接收用户修改的限流配置,并将所述限流配置发送给所述配置同步集群;所述配置同步集群302用于接收所述配置中心发送的所述限流配置,并将所述限流配置同步到所述设有限流器的WEB服务器中;所述设有限流器的WEB服务器303用于接收所述配置同步集群发送的所述限流配置和来自客户端的请求,并根据所述限流配置对所述请求进行流量限制。

具体的,配置中心301是用户进行限流配置修改的后台,因此,当用户通过配置中心进行修改限流配置时,配置中心接收到用户修改的限流配置。配置中心与配置同步集群通信连接,将接收到的限流配置发送至配置同步集群中。配置同步集群302接收配置中心301发送的限流配置,并实时将限流配置同步到设有限流器的WEB服务器303中。配置同步集群302能够保证在限流配置发生修改后能够实时更新到其他所用引用该限流配置的节点。在WEB服务器内设置有限流器,称为设有限流器的WEB服务器303,限流器的主要功能使按照预先确定的限流条件,判断当前请求是否应该被处理。且限流器运行于WEB容器中,设有限流器的WEB服务器303接收来自客户端的请求,根据限流配置对该请求进行流量限制。

本发明提供的系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

本发明实施例通过设有限流器的WEB服务器接收配置同步集群发送的限流配置,实现配置更新,并根据限流配置对客户端发送的请求进行流量限制,只需要研发人员通过可配置的方式进行热部署,极大提高了系统稳定性,并使限流的生效更加灵活。

在上述实施例的基础上,所述系统,还包括负载均衡器,用于接收所述客户端的请求,并将所述请求发送至所述WEB服务器。

具体的,用户通过客户端发送请求,该请求首先被负载均衡器接收,负载均衡器根据各个设有限流器的WEB服务器当前的负载情况,对该请求进行重定向,将其发送给合适的设有限流器的WEB服务器,由该设有限流器的WEB服务器对该请求进行处理。

本发明实施例通过在客户端和设有限流器的WEB服务器之间设有负载均衡器,用来将请求分散到多个可用的设有限流器的WEB服务器中,使多个设有限流器的WEB服务器的负载得到一个平衡,从而提高了系统的稳定性。

在上述实施例的基础上,所述请求包括每秒查询率,相应的,所述设有限流器的WEB服务器,具体用于:

根据所述限流配置若判断获知所述每秒查询率符合限流条件,则向所述客户端返回对应的返回数据;

根据所述限流配置若判断获知所述每秒查询率不符合限流条件,则向所述客户端返回错误码。

具体的,限流配置中包括限流条件,主要为每秒查询率,即限制用户请求中的每秒查询率在某个阈值范围内。即设有限流器的WEB服务器在接收到请求后,对该请求进行解析,获得对应的每秒查询率,如果判断获知用户请求中的每秒查询率在限流条件中的每秒查询率的阈值范围内,则说明该请求的每秒查询率符合限流条件,此时设有限流器的WEB服务器可以处理该请求,并将该请求对应的数据返回给客户端。如果判断获知用户请求中的每秒查询率大于限流条件中的每秒查询率的阈值范围,则说明该请求的每秒查询率不符合限流条件,此时设有限流器的WEB服务器向发送该请求的客户端返回错误码。

本发明实施例通过设有限流器的WEB服务器中的限流配置来判断请求中的每秒查询率是否符合限流条件,并将符合限流条件的请求对应的数据返回给客户端,从而限制了每秒查询率特别大的用户的请求,保证了网络的稳定性。

在上述各实施例的基础上,所述设有限流器的WEB服务器,具体用于:

利用漏桶算法或令牌桶算法构建所述限流配置,根据所述限流配置对所述请求进行流量限制。

图4为本发明另一实施例提供的一种基于WEB的流量限制系统结构示意图,如图4所示,包括:配置中心401、配置同步集群402、设有限流器的WEB服务器403、负载均衡器404和客户端405,其中:

配置中心401为服务管理人员提供修改限流配置的后台,当服务管理人员修改了限流配置后,配置中心401将该限流配置发送给配置同步集群402,配置同步集群402是一个高可用的配置同步方案,配置同步集群402保证配置在发生修改后能够实时更新到其他所有引用此配置的节点,因此,配置同步集群402将限流配置同步到设有限流器的WEB服务器403,设有限流器的WEB服务器403加载该限流配置。当用户通过客户端405发送请求时,负载均衡器404先接收到该请求,并将该请求进行重定向,发送给对应的设有限流器的WEB服务器403,设有限流器的WEB服务器403根据限流配置判断该请求是否符合限流条件,如果符合,则返回对应的数据,如果不符合,则返回错误码。

本发明实施例通过设有限流器的WEB服务器接收配置同步集群发送的限流配置,实现配置更新,并根据限流配置对客户端发送的请求进行流量限制,只需要研发人员通过可配置的方式进行热部署,极大提高了系统稳定性,并使限流的生效更加灵活。

图5为本发明实施例提供的电子设备实体结构示意图,如图5所示,所述电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;其中,

所述处理器501和存储器502通过所述总线503完成相互间的通信;

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:配置中心接收用户修改的限流配置,并将所述限流配置发送至配置同步集群;所述配置同步集群接收所述限流配置,并将所述限流配置同步到设有限流器的WEB服务器中;所述设有限流器的WEB服务器接收所述限流配置和来自客户端的请求,根据所述限流配置对所述请求进行流量限制。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:配置中心接收用户修改的限流配置,并将所述限流配置发送至配置同步集群;所述配置同步集群接收所述限流配置,并将所述限流配置同步到设有限流器的WEB服务器中;所述设有限流器的WEB服务器接收所述限流配置和来自客户端的请求,根据所述限流配置对所述请求进行流量限制。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:配置中心接收用户修改的限流配置,并将所述限流配置发送至配置同步集群;所述配置同步集群接收所述限流配置,并将所述限流配置同步到设有限流器的WEB服务器中;所述设有限流器的WEB服务器接收所述限流配置和来自客户端的请求,根据所述限流配置对所述请求进行流量限制。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的系统等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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