掌桥专利:专业的专利平台
掌桥专利
首页

热点数据的限流控制方法、装置、设备及存储介质

文献发布时间:2023-06-19 12:00:51


热点数据的限流控制方法、装置、设备及存储介质

技术领域

本发明涉及互联网领域,尤其涉及一种热点数据的限流控制方法、装置、设备及存储介质。

背景技术

现有的限流技术针对系统定义了资源、规则的概念,其中资源就是需要保护的代码,规则例如访问控制规则、熔断降级规则、系统保护规则、热点防护规则等。在系统运行中,实时监控流量情况,根据流量规则对现有系统做到保护的作用。

现有的流量防控体系在实际运用时候,对资源的定义需要预先设定,提前埋点。也就是说在开发设计阶段就需要识别出流量热点的资源,从而针对该热点做好提前预测并设置好规则。

然而在电商交易系统实际运行中,流量是不可预测的,是随机的。在实际过程中,热点数据也是不可预估的,可能出现某个商品的瞬时访问量非常高。这时候采用传统的流量防控,通过事先预测热点数据,并对这些数据设置防控规则的方式,就变得不可预估。对于无法被事先预估并被设定规则的热点数据,可能会占用所有的请求资源,挤占其他数据的请求资源,影响系统进程。甚至可能出现大量的请求击穿缓存,最终可能导致系统挂掉,对于系统来说风险极大。

发明内容

本发明的主要目的在于解决现有的数据限流难以对热点数据进行预测的技术问题。

本发明第一方面提供了一种热点数据的限流控制方法,包括:通过平台数据接口从数据平台中获取数据对象的访问信息;根据所述访问信息识别所述数据对象中的正在被访问的热点数据;确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断所述访问流量总值是否大于所述访问流量阈值;若是,则对所述热点数据的所有访问请求进行限流控制。

可选的,在本发明第一方面的第一种实现方式中,在所述根据所述访问信息识别所述数据对象中的正在被访问的热点数据之后,还包括:根据所述热点数据的访问信息,获取所述热点数据的日志数据;将所述日志数据通过消息队列异步存储在数据库中。

可选的,在本发明第一方面的第二种实现方式中,所述根据所述访问信息识别所述数据对象中的正在被访问的热点数据包括:获取所述数据库的数据存储周期,并将所述数据存储周期作为热点数据的统计周期;根据所述统计周期和所述访问信息,计算所述数据对象中各项数据的访问频次;将所述数据对象中访问频次大于预设频次的数据作为热点数据。

可选的,在本发明第一方面的第三种实现方式中,所述确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值包括:确定所述热点数据的访问控制规则,并基于所述访问控制规则获取所述数据平台的最大流量阈值;根据所述数据对象中各项数据的访问信息,计算所述热点数据的访问比例;根据所述访问比例和所述最大流量阈值,计算所述热点数据的访问流量阈值。

可选的,在本发明第一方面的第四种实现方式中,在所述确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值之前,还包括:获取所述数据对象的标签;根据所述标签,遍历预设的访问控制规则库,获取所述数据对象对应的访问控制规则;根据所述访问控制规则,对所述数据对象中的各项数据分配访问优先级。

可选的,在本发明第一方面的第五种实现方式中,在所述对所述热点数据的所有访问请求进行限流控制之后,还包括:当所述热点数据的数量大于一个时,获取所述热点数据对应的访问优先级;获取所述数据平台的当前访问总流量,并判断所述当前访问总流量是否大于所述最大流量阈值;若否,则根据所述当前访问总流量和所述最大流量阈值计算剩余流量空间;根据所述剩余流量空间和所述热点数据的访问优先级,取消访问优先级最高的热点数据的限流,并更新所述剩余流量空间;若更新后的剩余流量空间大于零,则根据所述访问优先级,逐级取消剩余的热点数据的限流,直至所述剩余流量空间不大于零。

可选的,在本发明第一方面的第六种实现方式中,所述对所述热点数据的所有访问请求进行限流控制包括:获取所述访问请求的访问类型,并根据所述访问类型,将所述访问请求接入预设的令牌桶;获取所述访问请求接入的令牌桶的剩余令牌数;若所述剩余令牌数为零,则拒绝所述访问请求,并返回访问失败提示;若所述剩余令牌数不为零,则放行所述访问请求进行后续处理。

本发明第二方面提供了一种热点数据的限流控制装置,包括:访问获取模块,用于通过平台数据接口从数据平台中获取数据对象的访问信息;识别模块,用于根据所述访问信息识别所述数据对象中的正在被访问的热点数据;分配模块,用于确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;流量获取模块,用于当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断模块,用于判断所述访问流量总值是否大于所述访问流量阈值;限流模块,用于当所述访问流量总值大于所述访问流量阈值时,对所述热点数据的所有访问请求进行限流控制。

可选的,在本发明第二方面的第一种实现方式中,所述热点数据的限流控制装置还包括日志存储模块,所述日志存储模块具体用于:根据所述热点数据的访问信息,获取所述热点数据的日志数据;将所述日志数据通过消息队列异步存储在数据库中。

可选的,在本发明第二方面的第二种实现方式中,所述识别模块具体用于:获取所述数据库的数据存储周期,并将所述数据存储周期作为热点数据的统计周期;根据所述统计周期和所述访问信息,计算所述数据对象中各项数据的访问频次;将所述数据对象中访问频次大于预设频次的数据作为热点数据。

可选的,在本发明第二方面的第三种实现方式中,所述分配模块具体用于:确定所述热点数据的访问控制规则,并基于所述访问控制规则获取所述数据平台的最大流量阈值;根据所述数据对象中各项数据的访问信息,计算所述热点数据的访问比例;根据所述访问比例和所述最大流量阈值,计算所述热点数据的访问流量阈值。

可选的,在本发明第二方面的第四种实现方式中,所述热点数据的限流控制装置还包括优先级设置模块,所述优先级设置模块具体用于:获取所述数据对象的标签;根据所述标签,遍历预设的访问控制规则库,获取所述数据对象对应的访问控制规则;根据所述访问控制规则,对所述数据对象中的各项数据分配访问优先级。

可选的,在本发明第二方面的第五种实现方式中,所述热点数据的限流控制装置还包括限流解除模块,所述限流解除模块具体用于:当所述热点数据的数量大于一个时,获取所述热点数据对应的访问优先级;获取所述数据平台的当前访问总流量,并判断所述当前访问总流量是否大于所述最大流量阈值;若否,则根据所述当前访问总流量和所述最大流量阈值计算剩余流量空间;根据所述剩余流量空间和所述热点数据的访问优先级,取消访问优先级最高的热点数据的限流,并更新所述剩余流量空间;若更新后的剩余流量空间大于零,则根据所述访问优先级,逐级取消剩余的热点数据的限流,直至所述剩余流量空间不大于零。

可选的,在本发明第二方面的第六种实现方式中,所述限流模块具体用于:获取所述访问请求的访问类型,并根据所述访问类型,将所述访问请求接入预设的令牌桶;获取所述访问请求接入的令牌桶的剩余令牌数;若所述剩余令牌数为零,则拒绝所述访问请求,并返回访问失败提示;若所述剩余令牌数不为零,则放行所述访问请求进行后续处理。

本发明第三方面提供了一种热点数据的限流控制设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述热点数据的限流控制设备执行上述的热点数据的限流控制方法的步骤。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的热点数据的限流控制方法的步骤。

本发明的技术方案中,通过平台数据接口从数据平台中获取数据对象的访问信息;根据所述访问信息识别所述数据对象中的正在被访问的热点数据;确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断所述访问流量总值是否大于所述访问流量阈值;若是,则对所述热点数据的所有访问请求进行限流控制。通过本方法能够在系统运行过程中,根据实际的业务请求数据,进行热点数据的识别,无需进行人工埋点,并且针对识别的不同的热点数据,能够使用对应的访问控制规则进行流量分配,避免出现部分数据时间访问量突增导致缓存击穿的问题,保障系统的正常运作。

附图说明

图1为本发明实施例中热点数据的限流控制方法的第一个实施例示意图;

图2为本发明实施例中热点数据的限流控制方法的第二个实施例示意图;

图3为本发明实施例中热点数据的限流控制方法的第三个实施例示意图;

图4为本发明实施例中热点数据的限流控制方法的第四个实施例示意图;

图5为本发明实施例中热点数据的限流控制方法的第五个实施例示意图;

图6为本发明实施例中热点数据的限流控制装置的一个实施例示意图;

图7为本发明实施例中热点数据的限流控制装置的另一个实施例示意图;

图8为本发明实施例中热点数据的限流控制设备的一个实施例示意图。

具体实施方式

本发明的技术方案中,通过平台数据接口从数据平台中获取数据对象的访问信息;根据所述访问信息识别所述数据对象中的正在被访问的热点数据;确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断所述访问流量总值是否大于所述访问流量阈值;若是,则对所述热点数据的所有访问请求进行限流控制。通过本方法能够在系统运行过程中,根据实际的业务请求数据,进行热点数据的识别,无需进行人工埋点,并且针对识别的不同的热点数据,能够使用对应的访问控制规则进行流量分配,避免出现部分数据时间访问量突增导致缓存击穿的问题,保障系统的正常运作。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中热点数据的限流控制方法的第一个实施例包括:

101、通过平台数据接口从数据平台中获取数据对象的访问信息;

可以理解的是,本发明的执行主体可以为热点数据的限流控制装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

需要强调的是,为保证数据的私密和安全性,上述访问信息可以存储于一区块链的节点中。

在本实施例中,主要应用于用户需要和后台进行多次接口的交互的系统的限流控制,例如电商平台,用户一般需要与电商平台的后台的多个业务接口之间进行多次交互,才能完成一次电商服务。也可以应用于单次交互的系统,例如,通过一次页面访问即可完成一次系统服务。其中,该系统可以提供多种用户访问渠道,例如,独立的应用程序、微信小程序,web访问等。在本实施例中,以数据平台为电商平台为例,用户在电商平台上进行购物的过程中,需要点击商品界面进行访问,也即时对数据对象的访问,对于每一次的访问请求,系统都会记录请求日志,根据请求日志,即可生成对应的访问信息,用户登录电商平台后,可以根据需要对电商平台提供的各项服务进行访问,其中,每项服务均有对应的业务接口,例如电商平台举办的各种购物活动对应的业务接口,购物活动页面中各项商品的信息访问接口等。根据不同的访问类型生成不同的数据对象类型。

102、根据访问信息识别数据对象中的正在被访问的热点数据;

在本实施例中,数据对象包括有各项数据,以电商平台为例,当数据对象类型为电商平台的活动,则数据对象的各项数据为电商平台举办的各项活动的业务代码,根据不同用户点击电商平台举办的活动进行访问时,生成对应活动的访问信息,当数据对象类型为电商平台的商品,则数据对象的各项数据为电商平台中各商品的商品类型以及生成的sku数组,根据不同用户点击电商平台上的商品进行访问时,生成对应商品的访问信息,根据预设的识别规则,对数据对象的各项数据的访问信息进行其中的热点数据的识别,例如统计各项数据在时间窗口内(1s)用户实时访问的访问频次,当各项数据中的某项数据的访问频次达到一定阈值,则将该项数据识别为热点数据。

103、确定热点数据的访问控制规则,并基于访问控制规则计算出热点数据的访问流量阈值;

在本实施例中,根据数据对象的类型获取对应的访问控制规则,同时,也可以根据网络连接时间,网络流量波动特性,网络资源来源,连接访问频次进行访问控制规则的选择,本发明不做限定。

在本实施例中,所述访问控制规则包括有时间范围、权重值、优先级等,为各项数据进行时间范围、权重值、优先级,根据不同时间范围,每个数据对象的各项数据优先级设置不用场景下事件的网络流量阈值,例如购物节期间,在凌晨0点到凌晨2点之间,优先满足用户的购买请求,在满足用户的商品查看请求,对用户的购买请求设置较大的流量阈值,对商品查看请求设置较小的流量阈值。

104、当接收到对热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于流量资源计算所有访问请求所需的访问流量总值;

105、判断访问流量总值是否大于访问流量阈值;

在本实施例中,以数据平台为电商平台为例,用户在电商平台上进行购物的过程中,需要点击商品界面进行访问,也即时对数据对象的访问,对于每一次的访问请求,系统都会记录请求日志,当请求日志中记录有对热点数据的访问请求时,根据所述请求日志获取数据对象中各项数据的访问流量总值,并从中获取热点数据的访问流量总值,访问流量总值主要通过对该项数据的访问请求占用的流量资源进行计算得到,将热点数据的访问流量总值与预先分配好的流量阈值进行比较,判断所述访问流量总值是否大于所述热点流量阈值,若是,则对热点数据对应的访问请求进行限流,若否,则将访问流量总值进行加一操作并进行更新。

106、若是,则对热点数据的所有访问请求进行限流控制。

在本实施例中,还可以根据对热点数据的访问请求的不同类型进行不同的限流策略,用户发出的访问请求中会携带有多种表达用户目的的识别信息,如访问请求的目的地址(url地址),又如具体的操作信息,如请求下载,请求进行网络交易,请求进行数据存储或中转,可以根据对热点信息访问请求中携带的信息判断是否需要对该访问请求进行限流,已经应当如何进行限流,即依据对热点数据的不同访问请求进行区别式限流。

在本实施例中,可以预先在系统的本地数据库中存储关于访问目的信息的数据表,该数据表中记载有访问目的信息以及对应的限流策略,如果依据访问目的信息能够查询到限流策略则根据查询到的限流策略进行限流,若不能,则一般可以不进行限流,或者其他流量控制方式,本发明不做限定。

在本实施例中,通过平台数据接口从数据平台中获取数据对象的访问信息;根据所述访问信息识别所述数据对象中的正在被访问的热点数据;确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断所述访问流量总值是否大于所述访问流量阈值;若是,则对所述热点数据的所有访问请求进行限流控制。通过本方法能够在系统运行过程中,根据实际的业务请求数据,进行热点数据的识别,无需进行人工埋点,并且针对识别的不同的热点数据,能够使用对应的访问控制规则进行流量分配,避免出现部分数据时间访问量突增导致缓存击穿的问题,保障系统的正常运作。

请参阅图2,本发明实施例中热点数据的限流控制方法的第二个实施例包括:

201、通过平台数据接口从数据平台中获取数据对象的访问信息;

本实施例中的步骤201与第一实施例中的步骤101相似,此处不再赘述。

202、获取数据库的数据存储周期,并将数据存储周期作为热点数据的统计周期;

203、根据统计周期和访问信息,计算数据对象中各项数据的访问频次;

204、将数据对象中访问频次大于预设频次的数据作为热点数据;

在实际应用中,可以通过不同的识别策略进行热点数据的识别,例如统计各项数据在时间窗口内(1s)用户实时访问的访问频次,当各项数据中的某项数据的访问频次达到一定阈值,则将该项数据识别为热点数据。

在本实施例中,根据数据库的存储周期进行热点数据的识别,采用了流式存储方式,具有一定的存储周期,每当经过存储周期,会删除存储节点上的旧数据,令存储节点存储新数据,保证热点数据的时效性,例如在电商平台进行活动的过程中,极有可能出现一些“黑马”商品,而在电商平台的活动后,这部分商品不再是热点商品,需要进行重新判断,统计用户的访问信息只需考虑在该统计周期内存储的数据以及在统计周期的用户的访问请求,而无需识别在统计周期之前存储的老数据。

在本实施例中,根据统计周期,以及访问信息,计算数据对象中各项数据的访问频次;将数据对象中访问频次大于预设频次的数据作为热点数据。

205、根据热点数据的访问信息,获取热点数据的日志数据;

206、将日志数据通过消息队列异步存储在数据库中;

在本实施例中,对于每一次的访问请求,系统都会记录请求日志,根据请求日志,即可生成对应的访问信息,在从数据对象的各项数据中筛选出热点数据后,通过平台的数据接口,获取热点数据对应的日志数据,通过异步存储热点数据,便于监控系统热点数据,以及流控数据,便于后续业务分析以及监控,在本实施例中,由于数据库写入数据的速度较慢,而平台的访问量大,存在不同用户的访问请求,可能导致数据最后写入不到数据库中,通过异步存储的方式,将日志数据先放入一个携程内存连接池中,再同时将连接池的数据写入到数据库中,这样既可以提高数据库的写入速度,同时也可以访问行程的日志数据都写入进数据库,能保证数据的完整性。

207、确定热点数据的访问控制规则,并基于访问控制规则计算出热点数据的访问流量阈值;

208、当接收到对热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于流量资源计算所有访问请求所需的访问流量总值;

209、判断访问流量总值是否大于访问流量阈值;

210、若是,则对热点数据的所有访问请求进行限流控制。

本实施例中的步骤207-210与第一实施例中的步骤103-106相似,此处不再赘述。

本实施例在上一实施例的基础上,详细描述了根据所述访问信息识别所述数据对象中的热点数据的过程,通过获取所述数据库的数据存储周期,并将所述数据存储周期作为热点数据的统计周期;根据所述统计周期和所述访问信息,计算所述数据对象中各项数据的访问频次;将所述数据对象中访问频次大于预设频次的数据作为热点数据。通过本方法将数据库的数据存储周期作为热点识别的统计周期,能够对热点数据的识别进行周期的更新,保证热点数据的时效性,同时减少数据库的存储压力。同时本实施例还增加了将热点数据的日志数据存储至数据库的过程,保证数据的完整性,同时根据日志数据,便于进行后续的业务分析和监控。

请参阅图3,本发明实施例中热点数据的限流控制方法的第三个实施例包括:

301、通过平台数据接口从数据平台中获取数据对象的访问信息;

302、根据所述访问信息识别所述数据对象中的正在被访问的热点数据;

本实施例中的步骤301-302与第一实施例中的步骤101-102相似,此处不再赘述。

303、确定热点数据的访问控制规则,并基于访问控制规则获取数据平台的最大流量阈值;

304、根据数据对象中各项数据的访问信息,计算热点数据的访问比例;

305、根据访问比例和最大流量阈值,计算热点数据的访问流量阈值;

在本实施例中,所述访问控制规则包括有时间范围、权重值、优先级等,其中,通过权重值,以及获取的最大流量阈值进行计算,能够对数据对象中不同数据的流量阈值进行分配。在实际应用中,可以根据优先级进行权重值的分配,同时,也可以通过数据对象中各项数据的访问信息中热点数据的访问比例,例如在一段时间内,数据对象的访问信息中,热点数据的访问信息占的比例为30%,则将热点流量阈值设置为最大流量阈值的30%,此外,还可以通过不同的方式设置热点流量阈值,本发明不做限定。

306、当接收到对热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于流量资源计算所有访问请求所需的访问流量总值;

307、判断访问流量总值是否大于访问流量阈值;

308、若是,则对热点数据的所有访问请求进行限流控制。

本实施例中的步骤306-308与第一实施例中的步骤104-106相似,此处不再赘述。

本实施例在前实施例的基础上,详细描述了根据预设的访问控制规则为所述热点数据分配热点流量阈值的过程。通过获取所述数据平台的最大流量阈值;根据所述数据对象中各项数据的访问信息,计算所述热点数据的访问比例;根据所述访问比例和所述最大流量阈值,计算所述热点数据的热点流量阈值。本方法通过数据平台的最大流量阈值进行热点数据的流量阈值的分配,能够合理对流量阈值进行分配,避免出现请求击穿缓存,保证系统运行。

请参阅图4,本发明实施例中热点数据的限流控制方法的第四个实施例包括:

401、通过平台数据接口从数据平台中获取数据对象的访问信息;

402、根据所述访问信息识别所述数据对象中的正在被访问的热点数据;

本实施例中的步骤401-402与第一实施例中的步骤101-102相似,此处不再赘述。

403、获取数据对象的标签;

404、根据标签,遍历预设的访问控制规则库,获取数据对象对应的访问控制规则;

405、根据访问控制规则,对数据对象中的各项数据分配访问优先级;

在本实施例中,获取数据对象的标签和访问控制规则库中的第一访问控制规则,并进行匹配;若匹配不成功,判断所述第一访问控制规则是否为访问控制规则库中的最后一条访问控制规则;若是最后一条访问控制规则,结束对访问控制规则库中的访问控制规则的遍历,此时若未检测到所述交易报文对应的访问控制规则时,判定访问控制规则库中不存在所述交易报文对应的目标访问控制规则;若不是最后一条访问控制规则,将访问控制规则库中所述第一访问控制规则的下一访问控制规则作为新的第一访问控制规则,并返回执行所述获取第一访问控制规则的标签;若匹配成功,判定所述第一访问控制规则为所述交易报文对应的目标访问控制规则。

406、确定热点数据的访问控制规则,并基于访问控制规则计算出热点数据的访问流量阈值;

407、当接收到对热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于流量资源计算所有访问请求所需的访问流量总值;

408、判断访问流量总值是否大于访问流量阈值;

409、若是,则对热点数据的所有访问请求进行限流控制;

本实施例中的步骤406-409与第一实施例中的步骤103-106相似,此处不再赘述。

410、当热点数据的数量大于一个时,获取热点数据对应的访问优先级;

411、获取数据平台的当前访问总流量,并判断当前访问总流量是否大于最大流量阈值;

412、若否,则根据当前访问总流量和最大流量阈值计算剩余流量空间;

413、根据剩余流量空间和热点数据的访问优先级,取消访问优先级最高的热点数据的限流,并更新剩余流量空间;

414、若更新后的剩余流量空间大于零,则根据访问优先级,逐级取消剩余的热点数据的限流,直至剩余流量空间不大于零。

在实际应用中,数据对象的各项数据中可能识别书多个热点数据,在本实施例中,通过事先分配的优先级,给予指定特殊热点数据优先分配流量,保证重点活动业务的运行,特殊热点数据可以包括促销活动中的商品信息热点、渠道来源热点、商户信息热点、商品标签热点、商品的活动标签、商户的活动标签热点、商品资金信息热点,对于优先级较高的热点数据,在出现热点数据的访问流量总值大于热点流量阈值,但是当前访问总流量小于最大流量阈值时,可以将剩余的流量空间分配分配给优先级较高的热点数据,根据优先级的高低,进行逐步分配,同时在热点数据的访问流量总值大于热点流量阈值,同时当前访问总流量大于最大流量阈值时,也可以将优先级较低的数据的访问请求进行限流,将限流出来的流量空间分配给优先级较高的热点数据。

本实施例在前实施例的基础上,增加了设置数据优先级的过程,通过获取所述数据对象的标签;根据所述标签,遍历预设的访问控制规则库,获取所述数据对象对应的访问控制规则;根据所述访问控制规则,对所述数据对象中的各项数据分配访问优先级,通过设置数据的优先级,能够在当所述热点数据的数量大于一个时,获取所述热点数据对应的访问优先级;获取所述数据平台的当前访问总流量,并判断所述当前访问总流量是否大于所述最大流量阈值;若否,则根据所述当前访问总流量和所述最大流量阈值计算剩余流量空间;根据所述剩余流量空间和所述热点数据的访问优先级,取消访问优先级最高的热点数据的限流,并更新所述剩余流量空间;若更新后的剩余流量空间大于零,则根据所述访问优先级,逐级取消剩余的热点数据的限流,直至所述剩余流量空间不大于零,使得限流出来的流量空间分配给优先级较高的热点数据,保证系统的正常运行。

请参阅图5,本发明实施例中热点数据的限流控制方法的第五个实施例包括:

501、通过平台数据接口从数据平台中获取数据对象的访问信息;

502、根据访问信息识别数据对象中的正在被访问的热点数据;

503、确定热点数据的访问控制规则,并基于访问控制规则计算出热点数据的访问流量阈值;

504、当接收到对热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于流量资源计算所有访问请求所需的访问流量总值;

505、判断访问流量总值是否大于访问流量阈值;

本实施例中的步骤501-505与第一实施例中的步骤101-105相似,此处不再赘述。

506、若是,则获取访问请求的访问类型,并根据访问类型,将访问请求接入预设的令牌桶;

507、判断访问请求接入的令牌桶的剩余令牌数是否为零;

508、若剩余令牌数为零,则拒绝访问请求,并返回访问失败提示;

509、若剩余令牌数不为零,则放行访问请求进行后续处理。

在本实施例中,可以对接入令牌桶的请求进行分类,例如可以将一种类型的请求归属为一个应用,还可以将一个应用对应的不同用户分为不同类型的请求。还可以将一个应用生成的不同业务请求分为不同类型的请求。通过为访问请求进行令牌的分配,得到令牌的访问请求可以进行对应的访问操作,而没分到令牌的访问请求则直接返回访问失败的相应提示。

本实施例在前实施例的基础上,详细描述了对所述热点数据的所有访问请求进行限流控制的过程,通过获取所述访问请求的访问类型,并根据所述访问类型,将所述访问请求接入预设的令牌桶;获取所述访问请求接入的令牌桶的剩余令牌数;若所述剩余令牌数为零,则拒绝所述访问请求,并返回访问失败提示;若所述剩余令牌数不为零,则放行所述访问请求进行后续处理。通过设置令牌桶的方法,能够对访问请求进行令牌方法,实现访问请求的限流。

上面对本发明实施例中热点数据的限流控制方法进行了描述,下面对本发明实施例中热点数据的限流控制装置进行描述,请参阅图6,本发明实施例中热点数据的限流控制装置一个实施例包括:

访问获取模块601,用于通过平台数据接口从数据平台中获取数据对象的访问信息;识别模块602,用于根据所述访问信息识别所述数据对象中的正在被访问的热点数据;分配模块603,用于确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;流量获取模块604,用于当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断模块605,用于判断所述访问流量总值是否大于所述访问流量阈值;限流模块606,用于当所述访问流量总值大于所述访问流量阈值时,对所述热点数据的所有访问请求进行限流控制。

需要强调的是,为保证数据的私密和安全性,上述数据对象的访问信息可以存储于一区块链的节点中。

本发明实施例中,所述热点数据的限流控制装置运行上述热点数据的限流控制方法,所述热点数据的限流控制装置通过平台数据接口从数据平台中获取数据对象的访问信息;根据所述访问信息识别所述数据对象中的正在被访问的热点数据;确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断所述访问流量总值是否大于所述访问流量阈值;若是,则对所述热点数据的所有访问请求进行限流控制。通过本方法能够在系统运行过程中,根据实际的业务请求数据,进行热点数据的识别,无需进行人工埋点,并且针对识别的不同的热点数据,能够使用对应的访问控制规则进行流量分配,避免出现部分数据时间访问量突增导致缓存击穿的问题,保障系统的正常运作。

请参阅图7,本发明实施例中热点数据的限流控制装置的第二个实施例包括:

访问获取模块601,用于通过平台数据接口从数据平台中获取数据对象的访问信息;识别模块602,用于根据所述访问信息识别所述数据对象中的正在被访问的热点数据;分配模块603,用于确定所述热点数据的访问控制规则,并基于所述访问控制规则计算出所述热点数据的访问流量阈值;流量获取模块604,用于当接收到对所述热点数据的访问请求时,获取每个访问请求所占用的流量资源,并基于所述流量资源计算所有访问请求所需的访问流量总值;判断模块605,用于判断所述访问流量总值是否大于所述访问流量阈值;限流模块606,用于当所述访问流量总值大于所述访问流量阈值时,对所述热点数据的所有访问请求进行限流控制。

其中,所述热点数据的限流控制装置还包括日志存储模块607,所述日志存储模块607具体用于:根据所述热点数据的访问信息,获取所述热点数据的日志数据;将所述日志数据通过消息队列异步存储在数据库中。

可选的,所述识别模块602具体用于:获取所述数据库的数据存储周期,并将所述数据存储周期作为热点数据的统计周期;根据所述统计周期和所述访问信息,计算所述数据对象中各项数据的访问频次;将所述数据对象中访问频次大于预设频次的数据作为热点数据。

可选的,所述分配模块603具体用于:确定所述热点数据的访问控制规则,并基于所述访问控制规则获取所述数据平台的最大流量阈值;根据所述数据对象中各项数据的访问信息,计算所述热点数据的访问比例;根据所述访问比例和所述最大流量阈值,计算所述热点数据的访问流量阈值。

其中,所述热点数据的限流控制装置还包括优先级设置模块608,所述优先级设置模块608具体用于:获取所述数据对象的标签;根据所述标签,遍历预设的访问控制规则库,获取所述数据对象对应的访问控制规则;根据所述访问控制规则,对所述数据对象中的各项数据分配访问优先级。

其中,所述热点数据的限流控制装置还包括限流解除模块609,所述限流解除模块609具体用于:当所述热点数据的数量大于一个时,获取所述热点数据对应的访问优先级;获取所述数据平台的当前访问总流量,并判断所述当前访问总流量是否大于所述最大流量阈值;若否,则根据所述当前访问总流量和所述最大流量阈值计算剩余流量空间;根据所述剩余流量空间和所述热点数据的访问优先级,取消访问优先级最高的热点数据的限流,并更新所述剩余流量空间;若更新后的剩余流量空间大于零,则根据所述访问优先级,逐级取消剩余的热点数据的限流,直至所述剩余流量空间不大于零。

可选的,所述限流模块606具体用于:获取所述访问请求的访问类型,并根据所述访问类型,将所述访问请求接入预设的令牌桶;获取所述访问请求接入的令牌桶的剩余令牌数;若所述剩余令牌数为零,则拒绝所述访问请求,并返回访问失败提示;若所述剩余令牌数不为零,则放行所述访问请求进行后续处理。

本实施例在上一实施例的基础上,详细描述了各个模块的具体功能以及部分模块的单元构成,通过新增的日志存储模块,能够对热点数据的日志数据进行数据库存储,便于后续业务的分析以及对热点数据的监控,此外通过优先级设置模块对数据对象进行访问优先级的设置,在后续可以根据访问优先级进行限流的逐级解除,通过本装置,能够在系统运行过程中,根据实际的业务请求数据,进行热点数据的识别,无需进行人工埋点,并且针对识别的不同的热点数据,能够使用对应的访问控制规则进行流量分配,避免出现部分数据时间访问量突增导致缓存击穿的问题,保障系统的正常运作。

上面图6和图7从模块化功能实体的角度对本发明实施例中的中热点数据的限流控制装置进行详细描述,下面从硬件处理的角度对本发明实施例中热点数据的限流控制设备进行详细描述。

图8是本发明实施例提供的一种热点数据的限流控制设备的结构示意图,该热点数据的限流控制设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)810(例如,一个或一个以上处理器)和存储器820,一个或一个以上存储应用程序833或数据832的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器820和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对热点数据的限流控制设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质830通信,在热点数据的限流控制设备800上执行存储介质830中的一系列指令操作,以实现上述热点数据的限流控制方法的步骤。

热点数据的限流控制设备800还可以包括一个或一个以上电源840,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口860,和/或,一个或一个以上操作系统831,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图8示出的热点数据的限流控制设备结构并不构成对本申请提供的热点数据的限流控制设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述热点数据的限流控制方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 热点数据的限流控制方法、装置、设备及存储介质
  • 热点网络控制方法、装置、设备和计算机可读存储介质
技术分类

06120113133650