网络访问请求控制方法和装置与流程

文档序号:12182655阅读:216来源:国知局
网络访问请求控制方法和装置与流程

本申请涉及互联网技术领域,尤其涉及一种网络访问请求控制方法和装置。



背景技术:

大型电商网络的架构是一个复杂的分布式网状架构,日均访问量上亿次,每次用户请求处理往往会依赖几十,甚至上百个子系统。要保证整体系统稳定,现有的做法都是尽量保证每个子系统的稳定性,不同子系统采用各自方法对自身访问入口、出口以及中间过程进行控制处理,没有一个统一的做法,流量增大后,很难保证所有子系统都是完全可靠的,并且这种方式也没有考虑到分布式链路的特点,不同子系统的保护措施甚至会引发系统之间的冲突。从控制手段上来看,对于突发流量(例如:爬虫抓取等),现在的做法一般是在入口做全局流量限制,但实际情况是,入口应用往往同时提供许多服务(最常见的情况是一个应用处理多个统一资源定位符(Uniform Resource Locator;以下简称:URL)请求),每个服务的服务能力也是不同的,这样的流量控制方法不具有针对性,存在实施方案不统一,控制粒度过粗的问题。



技术实现要素:

本申请的目的旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本申请的第一个目的在于提出一种网络访问请求控制方法。该方法可以根据网络访问请求所属的类别对网络访问请求进行控制,并可以针对分布式系统的不同层次采用不同流控方案,保障了大流量下,分布式系统的稳定性和可靠性。

本申请的第二个目的在于提出一种网络访问请求控制装置。

为了实现上述目的,本申请第一方面实施例的网络访问请求控制方法,包括:对网站接收的网络访问请求进行识别,获得所述网络访问请求所属的类别;根据所述网络访问请求所属的类别对所述网络访问请求进行控制。

本申请实施例的网络访问请求控制方法,对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别,然后根据上述网络访问请求所属的类别对上述网络访问请求进行控制,从而可以根据网络访问请求所属的类别对网络访问请求进行控制,并可以针 对分布式系统的不同层次采用不同流控方案,保障了大流量下,分布式系统的稳定性和可靠性。

为了实现上述目的,本申请第二方面实施例的网络访问请求控制装置,包括:识别模块,用于对网站接收的网络访问请求进行识别,获得所述网络访问请求所属的类别;控制模块,用于根据所述识别模块获得的所述网络访问请求所属的类别对所述网络访问请求进行控制。

本申请实施例的网络访问请求控制装置,识别模块对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别,然后控制模块根据上述网络访问请求所属的类别对上述网络访问请求进行控制,从而可以根据网络访问请求所属的类别对网络访问请求进行控制,并可以针对分布式系统的不同层次采用不同流控方案,保障了大流量下,分布式系统的稳定性和可靠性。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请网络访问请求控制方法一个实施例的流程图;

图2为本申请网络访问请求控制方法另一个实施例的流程图;

图3为本申请网络访问请求控制方法再一个实施例的流程图;

图4为本申请网络访问请求控制方法再一个实施例的流程图;

图5为本申请网络访问请求控制方法再一个实施例的流程图;

图6为本申请网络访问请求控制方法的实现架构一个实施例的示意图;

图7为本申请网络访问请求控制装置一个实施例的结构示意图;

图8为本申请网络访问请求控制装置另一个实施例的结构示意图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

在开始介绍本申请提供的网络访问请求控制方法之前,首先对网络访问请求进行多维度划分以及对分布式系统进行分层。

经过分析,大型电子商务网站(以下简称:电商网站)的网络访问请求可以按来源分为一般用户访问请求、爬虫访问请求和无效访问请求。其中,用户访问请求是指正常的用户请求,用户访问请求是电商网站的命脉;爬虫访问请求是指各大搜索引擎为了获取电商网站的信息,不定时的发起的抓取网页信息的网络访问请求,其抓取情况会影响电商网站在搜索引擎中的排名;无效访问请求是指非用户和非爬虫的网络访问请求,该类网络访问请求往往是突发行为,并且对电商网站没有意义。

电商网站分布式系统按照职责不同,可以分为物理层、域名系统(Domain Name System;以下简称:DNS)层、网页(web)服务器层(包括开放式系统互联(Open System Interconnection;以下简称:OSI网络模型)、页面应用层和服务应用层。特别地,相对于其他类别的网站,大型电商网站由大量的商业逻辑和业务逻辑组成,所以提供各种功能点的内部服务应用数量众多,调用关系也交错复杂。

图1为本申请网络访问请求控制方法一个实施例的流程图,如图1所示,该网络访问请求控制方法可以包括:

步骤101,对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别。

步骤102,根据上述网络访问请求所属的类别对上述网络访问请求进行控制。

上述网络访问请求控制方法中,对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别,然后根据上述网络访问请求所属的类别对上述网络访问请求进行控制,从而可以根据网络访问请求所属的类别对网络访问请求进行控制,并可以针对分布式系统的不同层次采用不同流控方案,保障了大流量下,分布式系统的稳定性和可靠性。

图2为本申请网络访问请求控制方法另一个实施例的流程图,本实施例中,上述网络访问请求所属的类别可以为:用户访问请求;如图2所示,步骤102可以包括:

步骤201,对上述网站接收的用户访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址。

具体地,根据DNS层的限流策略返回服务集群的入口IP地址可以为:如果达到默认服务集群的限流阈值,则根据优先级返回除上述默认服务集群之外的其他服务集群的入口IP地址;如果未达到默认服务集群的限流阈值,则返回上述默认服务集群的入口IP地址。

其中,默认服务集群的限流阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述默认服务集群的限流阈值的大小不作限定。

步骤202,将上述用户访问请求发送到上述入口IP地址对应的服务集群的web服务器 层。

步骤203,判断上述用户访问请求是否触发web服务器层的限流策略。如果是,则执行步骤213;如果否,则执行步骤204。

步骤204,判断上述用户访问请求是否触发页面应用层的限流策略。如果是,则执行步骤213;如果否,则执行步骤205。

步骤205,判断上述用户访问请求的内部业务逻辑是否依赖其他服务。如果是,则执行步骤206;如果否,则执行步骤212。

步骤206,依次验证上述用户访问请求的内部业务逻辑所依赖的服务的调用是否满足降级策略。如果是,则执行步骤207;如果否,则执行步骤209。

步骤207,对满足降级策略的服务进行降级。

步骤208,当降级的服务调用实现的是优先级不高于预定阈值的业务逻辑时,直接完成上述降级的服务的调用;当上述降级的服务调用实现的是优先级高于预定阈值的业务逻辑时,对上述降级的服务的调用执行限流回退逻辑,完成上述降级的服务的调用。

其中,上述预定阈值可以在具体实现时根据系统性能和/或实现需求等自行设定,本实施例对上述预定阈值的大小不作限定。

其中,优先级高于预定阈值的业务逻辑可以为核心业务逻辑;对上述降级的服务的调用执行限流回退(fallback)逻辑可以为:发送回退通知,保障分布式事务等。

步骤209,判断上述用户访问请求的内部业务逻辑所依赖的服务的调用是否触发服务应用层的限流策略。如果是,则执行步骤210;如果否,则执行步骤211。

步骤210,执行上述限流策略,对上述用户访问请求的内部业务逻辑所依赖的服务的调用进行限制。然后返回执行步骤205。

步骤211,执行上述用户访问请求的内部业务逻辑所依赖的服务的内部逻辑。然后返回执行步骤206。

步骤212,继续执行页面业务逻辑,返回上述用户访问请求所请求的页面。结束本次流程。

步骤213,拒绝执行上述用户访问请求,并提示已对上述用户访问请求进行限流。结束本次流程。

具体地,提示已对上述用户访问请求进行限流可以为:将上述用户访问请求跳转到限流友好提示页面。

进一步地,步骤211之后,还可以等待上述用户访问请求的内部业务逻辑所依赖的服务的调用的执行,并判断是否存在上述用户访问请求的内部业务逻辑被所依赖的服务限流 的情况,如果存在,则执行步骤208;如果不存在,则执行步骤212。

图3为本申请网络访问请求控制方法再一个实施例的流程图,本实施例中,上述网络访问请求所属的类别可以为:爬虫访问请求;如图3所示,步骤102可以包括:

步骤301,判断爬虫是否遵守网络爬虫排除标准(Robots Exclusion Protocol;以下简称:Robots)协议;如果是,则执行步骤302;如果否,则执行步骤307。

步骤302,接收上述爬虫发起的文件获取请求。

具体地,上述文件获取请求可以为Robots.txt文件获取请求。

步骤303,判断web服务器层是否存在需动态配置的网络爬虫排除标准协议文本(Robots.txt)文件;如果存在,则执行步骤304;如果不存在,则执行步骤305。

步骤304,向上述爬虫返回根据动态配置生成的Robots.txt文件。然后,执行步骤306。

步骤305,向上述爬虫返回默认的Robots.txt文件。然后,执行步骤306。

步骤306,接收上述爬虫根据上述Robots.txt文件发送的爬虫访问请求。然后执行步骤308。

步骤307,接收上述爬虫发送的爬虫访问请求。然后执行步骤308。

步骤308,对上述爬虫访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址。

具体地,根据DNS层的限流策略返回服务集群的入口IP地址可以为:如果达到默认服务集群的限流阈值,则根据优先级返回除上述默认服务集群之外的其他服务集群的入口IP地址;如果未达到默认服务集群的限流阈值,则返回上述默认服务集群的入口IP地址。

其中,默认服务集群的限流阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述默认服务集群的限流阈值的大小不作限定。

步骤309,将上述爬虫访问请求发送到上述入口IP地址对应的服务集群的web服务器层。

步骤310,判断上述爬虫访问请求是否触发web服务器网络层的网络爬虫限流策略。如果否,则执行步骤311;如果是,则执行步骤314。

步骤311,获取上述爬虫访问请求的用户代理(user-agent)信息。

步骤312,根据上述用户代理信息判断上述爬虫访问请求是否触发web服务器应用层的限流策略;如果否,则执行步骤313;如果是,则执行步骤314。

步骤313,继续对上述爬虫访问请求执行与上述用户访问请求相同的限流策略。

具体地,继续对上述爬虫访问请求执行与上述用户访问请求相同的限流策略的过程可以参见本申请图2所示实施例中步骤204~步骤213描述的过程,在此不再赘述。

步骤314,拒绝执行上述爬虫访问请求,并提示已对上述爬虫访问请求进行限流。

具体地,提示已对上述爬虫访问请求进行限流可以为:将上述爬虫访问请求跳转到限流友好提示页面。

图4为本申请网络访问请求控制方法再一个实施例的流程图,本实施例中,上述网络访问请求所属的类别可以为:无效访问请求;如图4所示,步骤102可以为:

步骤401,对上述网站接收的访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址。

具体地,根据DNS层的限流策略返回服务集群的入口IP地址可以为:如果达到默认服务集群的限流阈值,则根据优先级返回除上述默认服务集群之外的其他服务集群的入口IP地址;如果未达到默认服务集群的限流阈值,则返回上述默认服务集群的入口IP地址。

其中,默认服务集群的限流阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述默认服务集群的限流阈值的大小不作限定。

步骤402,将上述访问请求发送到上述入口IP地址对应的服务集群的web服务器层,以使上述web服务器层获取最新的无效访问请求列表。

步骤403,判断上述访问请求是否存在上述无效访问请求列表中。如果是,则执行步骤404;如果否,则执行步骤405。

步骤404,停止对上述访问请求的处理。

步骤405,在页面应用层对上述访问请求进行处理之前,识别上述访问请求所属的网络访问请求是否为无效访问请求。如果是,则执行步骤404;如果否,则执行步骤406。

步骤406,确定上述访问请求所属的网络访问请求为用户访问请求,执行与上述用户访问请求相同的限流策略。后续执行过程可以参见本申请图2所示实施例步骤204~步骤213描述的过程,在此不再赘述。

图2、图3和图4所示实施例分别从3个网络访问请求维度介绍了不同层次的静态流控体系,主要通过动态配置各层的流控配置来避免预期出现问题,但实际场景中,可能出现网络访问请求突增超出预期的问题,所以,需要制定好预案配置,出现严重超出系统稳定性阈值的情况时,动态调整限流策略。特别注意,对于大型电商网站来讲,用户访问请求优先级最高,爬虫访问请求次之。

图5为本申请网络访问请求控制方法再一个实施例的流程图,本实施例对限流策略的动态调整过程进行介绍,本实施例介绍的限流策略的动态调整过程可以在步骤102之前,如图5所示,可以包括:

步骤501,获取服务集群当前的整体访问请求。

步骤502,判断上述整体访问请求是否大于集群稳定性阈值。如果是,则执行步骤503;如果否,则执行步骤512。

其中,上述集群稳定性阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述集群稳定性阈值的大小不作限定。

步骤503,判断是否可以将上述服务集群的网络访问请求跳转到除上述服务集群之外的其他服务集群;如果是,则执行步骤504;如果否,则执行步骤505。

步骤504,根据优先级将上述服务集群的网络访问请求跳转到其他服务集群。然后执行步骤501。

步骤505,判断是否可以对上述服务集群进行物理层扩容。如果是,则执行步骤506;如果否,则执行步骤507。

步骤506,对上述服务集群进行物理层扩容,并更新集群稳定性阈值。然后执行步骤501。

步骤507,判断是否可以进行爬虫访问请求限制。如果是,则执行步骤508;如果否,则执行步骤509。

步骤508,根据爬虫优先级对爬虫访问请求进行限制。然后执行步骤501。

具体地,根据爬虫优先级对爬虫访问请求进行限制可以为:根据爬虫优先级调整流控配置来限制爬虫访问请求,其中,爬虫优先级可以根据实际业务优先级动态调整。

步骤509,判断是否可以进行用户访问请求限制;如果是,则执行步骤510;如果否,则执行步骤511。

步骤510,根据业务优先级对用户访问请求进行限制。然后执行步骤501。

具体地,根据业务优先级对用户访问请求进行限制可以为:根据业务优先级调整URL流控配置来限制用户访问请求。

步骤511,进行人工干预处理。然后执行步骤512。

步骤512,完成对限流策略的调整。

从图2~图5所示实施例提供的网络访问请求控制方法可以看出,本申请提供的网络访问请求控制方法可以将网络访问请求划分为不同维度,基于业务优先级进行细粒度流控,并可以针对分布式系统划分层次,利用不同层次优势,采用不同技术方案进行限流降级。另外,本申请采用统一平台配置化管理,静态设置,动态管理,动静结合,保证了时效性和稳定性。

本申请图1~图5所示实施例提供的网络访问请求控制方法可以通过图6所示的系统架构实现,图6为本申请网络访问请求控制方法的实现架构一个实施例的示意图,如图6所 示,该系统架构可以包括:配置平台、配置数据交互中心、DNS服务器、CDN服务器、web服务器和应用服务器。

其中,配置平台的主要功能包括:第一,开发人员可以在该配置平台上对分布式系统各层的网络访问请求进行查看和动态修改限流策略(其中,动态修改限流策略的流程可以参见本申请图5所示实施例的描述),然后实时与DNS服务器、web服务器和应用服务器等进行配置数据交换;第二、配置平台结合网络访问请求识别子系统,对子系统识别出来的无效访问请求来源进行记录;第三、爬虫配置功能,对网络访问请求识别子系统识别出的真正爬虫访问请求来源进行配置;第四、限流配置功能,对URL和/或服务等根据每秒查询率(Query Per Second;以下简称:QPS)和/或响应时间(Response Time;以下简称:RT)进行配置;

配置数据交互中心是配置平台对外的统一出口,用于与部署在不同服务器上的流控插件进行数据交互。

流控插件用于实现具体流控功判断功能,各服务器通过流控插件与配置数据交互中心定时交互,获取最新的限流策略。

CDN服务器用于存放静态文件,以及限流后跳转的用户友好提示页面。

图7为本申请网络访问请求控制装置一个实施例的结构示意图,本实施例中的网络访问请求控制装置可以设置在网站中,实现本申请图1所示实施例的流程,如图7所示,该网络访问请求控制装置可以包括:识别模块71和控制模块72;

其中,识别模块71,用于对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别;在具体实现时,识别模块71可以设置在图6所示的系统架构中的配置平台上。

控制模块72,用于根据识别模块71获得的上述网络访问请求所属的类别对上述网络访问请求进行控制。在具体实现时,控制模块72可以作为图6所示的系统架构中的流控插件,设置在DNS服务器、web服务器和应用服务器上。

上述网络访问请求控制装置中,识别模块71对网站接收的网络访问请求进行识别,获得上述网络访问请求所属的类别,然后控制模块72根据上述网络访问请求所属的类别对上述网络访问请求进行控制,从而可以根据网络访问请求所属的类别对网络访问请求进行控制,并可以针对分布式系统的不同层次采用不同流控方案,保障了大流量下,分布式系统的稳定性和可靠性。

图8为本申请网络访问请求控制装置另一个实施例的结构示意图,与图7所示的网络访问请求控制装置相比,不同之处在于,本实施例的一种实现方式中,识别模块71获得的 上述网络访问请求所属的类别可以为:用户访问请求;控制模块72可以包括:解析子模块721、发送子模块722和执行子模块723;

其中,解析子模块721,用于对上述网站接收的用户访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址;其中,解析子模块721,具体用于当达到默认服务集群的限流阈值时,根据优先级返回除上述默认服务集群之外的其他服务集群的入口IP地址;当未达到默认服务集群的限流阈值时,返回上述默认服务集群的入口IP地址。其中,默认服务集群的限流阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述默认服务集群的限流阈值的大小不作限定。

发送子模块722,用于将上述用户访问请求发送到上述入口IP地址对应的服务集群的网页服务器层;

执行子模块723,用于当上述用户访问请求未触发网页服务器层的限流策略,并且未触发页面应用层的限流策略,并且上述用户访问请求的内部业务逻辑不依赖其他服务时,继续执行页面业务逻辑,返回上述用户访问请求所请求的页面。

进一步地,控制模块72还可以包括:

限流子模块724,用于在发送子模块722将上述用户访问请求发送到上述入口IP地址对应的服务集群的网页服务器层之后,如果上述用户访问请求触发了网页服务器层的限流策略,或者上述用户访问请求未触发网页服务器层的限流策略,但触发了页面应用层的限流策略,则拒绝执行上述用户访问请求,并提示已对上述用户访问请求进行限流。

进一步地,控制模块72还可以包括:验证子模块725、降级子模块726和调用子模块727;

验证子模块725,用于当上述用户访问请求的内部业务逻辑依赖其他服务时,依次验证上述用户访问请求的内部业务逻辑所依赖的服务的调用是否满足降级策略;

降级子模块726,用于当上述用户访问请求的内部业务逻辑所依赖的服务的调用满足降级策略时,对满足降级策略的服务进行降级;

调用子模块727,用于当降级的服务调用实现的是优先级不高于预定阈值的业务逻辑时,直接完成上述降级的服务的调用;当上述降级的服务调用实现的是优先级高于预定阈值的业务逻辑时,对上述降级的服务的调用执行限流回退逻辑,完成上述降级的服务的调用。

其中,上述预定阈值可以在具体实现时根据系统性能和/或实现需求等自行设定,本实施例对上述预定阈值的大小不作限定。

其中,优先级高于预定阈值的业务逻辑可以为核心业务逻辑;对上述降级的服务的调用执行限流回退(fallback)逻辑可以为:发送回退通知,保障分布式事务等。

进一步地,控制模块72还可以包括:判断子模块728;

判断子模块728,用于当上述用户访问请求的内部业务逻辑所依赖的服务的调用不满足降级策略时,判断上述用户访问请求的内部业务逻辑所依赖的服务的调用是否触发服务应用层的限流策略;

限流子模块724,用于当上述用户访问请求的内部业务逻辑所依赖的服务的调用触发服务应用层的限流策略时,执行上述限流策略,对上述用户访问请求的内部业务逻辑所依赖的服务的调用进行限制;

执行子模块723,用于当上述用户访问请求的内部业务逻辑所依赖的服务的调用未触发服务应用层的限流策略时,执行上述用户访问请求的内部业务逻辑所依赖的服务的内部逻辑。

本实施例的另一种实现方式中,识别模块71获得的网络访问请求所属的类别包括:爬虫访问请求;控制模块72可以包括:判断子模块728、接收子模块729、解析子模块721、发送子模块722、获取子模块7210和限流子模块724;

其中,判断子模块728,用于判断爬虫是否遵守网络爬虫排除标准协议;

接收子模块729,用于当判断子模块728确定爬虫不遵守网络爬虫排除标准协议时,接收上述爬虫发送的爬虫访问请求;

解析子模块721,还用于对上述爬虫访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址;

发送子模块722,还用于将上述爬虫访问请求发送到上述入口IP地址对应的服务集群的网页服务器层;

判断子模块728,还用于判断上述爬虫访问请求是否触发网页服务器网络层的网络爬虫限流策略;

获取子模块7210,用于当判断子模块728确定上述爬虫访问请求未触发网页服务器网络层的网络爬虫限流策略时,获取上述爬虫访问请求的用户代理信息;

判断子模块728,还用于根据获取子模块7210获取的用户代理信息判断上述爬虫访问请求是否触发网页服务器应用层的限流策略;

限流子模块724,用于当判断子模块728确定上述爬虫访问请求未触发网页服务器应用层的限流策略时,继续对上述爬虫访问请求执行与上述用户访问请求相同的限流策略。

进一步地,接收子模块729,还用于当爬虫遵守网络爬虫排除标准协议时,接收上述爬虫发起的文件获取请求;

判断子模块728,还用于判断网页服务器层是否存在需动态配置的网络爬虫排除标准协议文本文件;

发送子模块722,还用于当判断子模块728确定网页服务器层存在需动态配置的网络爬虫排除标准协议文本文件时,向上述爬虫返回根据动态配置生成的网络爬虫排除标准协议文本文件;当判断子模块728确定网页服务器层不存在需动态配置的网络爬虫排除标准协议文本文件时,向上述爬虫返回默认的网络爬虫排除标准协议文本文件;

接收子模块729,还用于接收上述爬虫根据上述网络爬虫排除标准协议文本文件发送的爬虫访问请求。

本实现方式中,限流子模块724,还用于当上述爬虫访问请求触发网页服务器网络层的网络爬虫限流策略时,拒绝执行上述爬虫访问请求,并提示已对上述爬虫访问请求进行限流。

限流子模块724,还用于当上述爬虫访问请求触发网页服务器应用层的限流策略时,拒绝执行上述爬虫访问请求,并提示已对上述爬虫访问请求进行限流。

本实施例的再一种实现方式中,识别模块71获得的网络访问请求所属的类别包括:无效访问请求;

解析子模块721,还用于对上述网站接收的访问请求进行域名解析,根据DNS层的限流策略返回服务集群的入口IP地址;

发送子模块722,还用于将上述访问请求发送到上述入口IP地址对应的服务集群的网页服务器层,以使上述网页服务器层获取最新的无效访问请求列表;

控制模块72还可以包括:判断子模块728和限流子模块724;

其中,判断子模块728,用于判断上述访问请求是否存在上述无效访问请求列表中;

限流子模块724,用于当判断子模块728确定上述访问请求存在上述无效网络访问请求列表中时,停止对上述访问请求的处理。

识别模块71,还用于当判断子模块728确定上述访问请求不存在于上述无效访问请求列表中时,在页面应用层对上述访问请求进行处理之前,识别上述访问请求所属的网络访问请求是否为无效访问请求;

限流子模块724,还用于当识别模块71识别上述访问请求所属的网络访问请求为无效访问请求时,停止对上述访问请求的处理;以及当识别模块71识别上述访问请求所属的网络访问请求不是无效访问请求时,确定上述访问请求所属的网络访问请求为用户访问请求,执行与上述用户访问请求相同的限流策略。

进一步地,上述网络访问请求控制装置还可以包括:获取模块73、判断模块74和调整模块75;在具体实现时,上述获取模块73、判断模块74和调整模块75可以设置在图6所示的系统架构中的配置平台上。

获取模块73,用于获取服务集群当前的整体访问请求;

判断模块74,用于判断获取模块73获取的整体访问请求是否大于集群稳定性阈值;其中,上述集群稳定性阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定, 本实施例对上述集群稳定性阈值的大小不作限定。

调整模块75,用于当获取模块73获取的整体访问请求不大于集群稳定性阈值时,完成对限流策略的调整。

进一步地,上述网络访问请求控制装置还可以包括:跳转模块76、扩容模块77和限制模块78;在具体实现时,上述跳转模块76、扩容模块77和限制模块78可以设置在图6所示的系统架构中的配置平台上。

其中,判断模块74,还用于当获取模块73获取的整体访问请求大于集群稳定性阈值时,判断是否可以将上述服务集群的网络访问请求跳转到除上述服务集群之外的其他服务集群;

跳转模块76,用于当判断模块74确定可以将上述服务集群的网络访问请求跳转到除上述服务集群之外的其他服务集群时,根据优先级将上述服务集群的网络访问请求跳转到其他服务集群。

判断模块74,还用于当确定不可以将上述服务集群的网络访问请求跳转到除上述服务集群之外的其他服务集群时,判断是否可以对上述服务集群进行物理层扩容;

扩容模块77,还用于当判断模块74确定可以对上述服务集群进行物理层扩容时,对上述服务集群进行物理层扩容,并更新集群稳定性阈值。

判断模块74,还用于当确定不可以对所述服务集群进行物理层扩容时,判断是否可以进行爬虫访问请求限制;

限制模块78,用于当判断模块74确定可以进行爬虫访问请求限制时,根据爬虫优先级对爬虫访问请求进行限制。

判断模块74,还用于当确定不可以进行爬虫访问请求限制时,判断是否可以进行用户访问请求限制;

限制模块78,还用于当判断模块74确定可以进行用户访问请求限制时,根据业务优先级对用户访问请求进行限制。

上述网络访问请求控制装置可以将网络访问请求划分为不同维度,基于业务优先级进行细粒度流控,并可以针对分布式系统划分层次,利用不同层次优势,采用不同技术方案进行限流降级。另外,上述网络访问请求控制装置采用统一平台配置化管理,静态设置,动态管理,动静结合,保证了时效性和稳定性。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序, 包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(Programmable Gate Array;以下简称:PGA),现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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