一种内容分发网络流量管理方法及设备与流程

文档序号:25536710发布日期:2021-06-18 20:30阅读:55来源:国知局
一种内容分发网络流量管理方法及设备与流程

本申请涉及计算机领域,尤其涉及一种内容分发网络流量管理方法及设备。



背景技术:

现有技术中,随着互联网的普及和高速发展,以及各个网站包含的各种信息越来越多,使用内容分发网络(contentdeliverynetwork,cdn)进行内容分发成为各个网站提升用户体验,降低源站负载的重要基础设施。当网站被攻击或者进行秒杀促销等活动时,流量相对于平常会有一个跳跃式的上升。如果不能及时应对,就会降低用户体验,甚至会导致网站服务不可用。为了解决这一问题,一方面当网站访问达到设定的限速阈值时,就会对全部的访问者进行拦截,虽然避免了访问高峰,但是容易造成误拦误防;另一方面,现有限流方案大部分是通过共享内存、锁等机制进行全局限流,对服务器性能有一定影响。因此,如何提高网站服务的高可用和系统性能成为当前研究的主要课题和方向。



技术实现要素:

本申请的一个目的是提供一种内容分发网络流量管理方法及设备,以解决现有技术中如何提高网站服务的高可用和系统性能的问题。

根据本申请的一个方面,提供了一种内容分发网络流量管理方法包括:

统计目标域名在预设时间段内的访问量并确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址;

当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将访问所述目标域名的各所述头部ip地址加入ip黑名单;

当所述目标域名的访问量大于所述最大限速阈值时,拦截访问所述目标域名的所有所述ip地址对应的访问请求。

进一步地,上述内容分发网络流量管理方法中,所述统计目标域名在预设时间段内的访问量,包括:

采用进程私有变量统计目标域名在预设时间段内的访问量。

进一步地,上述内容分发网络流量管理方法中,确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址,包括:

统计访问所述目标域名的所有所述ip地址中的各所述ip地址的访问次数;

基于所述访问次数从所有所述ip地址中,确定出访问所述目标域名最频繁的所述预设数量的ip地址;

其中,所述预设数量由限速管理者预置或所述预设数量由所有所述ip地址的总数的预设比例确定的。

进一步地,上述内容分发网络流量管理方法中,所述当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将各所述头部ip地址加入访问黑名单的同时,还包括:设置所述目标域名的各所述头部ip地址加入所述ip黑名单的拦截时间;

其中,所述方法还包括:

当拦截所述目标域名的各所述头部ip地址对应的访问请求的时间超过所述拦截时间,则允许所述时间超过所述拦截时间的头部ip地址访问所述目标域名,并将所述时间超过所述拦截时间的头部ip地址从所述ip黑名单删除;

再次统计所述时间超过所述拦截时间的头部ip地址在所述预设时间段内访问所述目标域名的访问次数。

进一步地,上述内容分发网络流量管理方法中,将访问所述目标域名的各所述头部ip地址加入ip黑名单之前,还包括:

基于所述目标域名和所述头部ip地址,查询所述ip黑名单中是否存在所述目标域名与所述头部ip地址之间的对应关系条目。

进一步地,上述内容分发网络流量管理方法中,所述方法还包括:

周期性地对访问所述目标域名的所述预设数量的头部ip地址进行统计并更新。

根据本申请的另一方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述任一项所述的方法。

根据本申请的另一方面,还提供了一种内容分发网络流量管理设备,该设备包括:

一个或多个处理器;

计算机可读介质,用于存储一个或多个计算机可读指令,

当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述中任一项所述的方法。

与现有技术相比,本申请通过统计目标域名在预设时间段内的访问量并确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址;当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将所述目标域名的各所述头部ip地址加入ip黑名单;当所述目标域名的访问量大于所述最大限速阈值时,拦截访问所述目标域名的所有所述ip地址对应的访问请求,即该方法通过两级限速,将限速逻辑进行局部化设计,避免对访问所述目标域名的ip地址造成误杀,保证了对访问所述目标域名的低频率的ip地址继续回源,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的一种内容分发网络流量管理方法的流程示意图;

图2示出根据本申请一个方面的一种内容分发网络流量管理方法的一实际应用场景的模块示意图;

图3示出根据本申请一个方面的一种内容分发网络流量管理方法的一实际应用场景的流程示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如中央处理器(centralprocessingunit,cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(randomaccessmemory,ram)和/或非易失性内存等形式,如只读存储器(readonlymemory,rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(phase-changeram,pram)、静态随机存取存储器(staticrandomaccessmemory,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能光盘(digitalversatiledisk,dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

图1示出根据本申请一个方面的一种内容分发网络流量管理方法的流程示意图,该方法适用于网站服务的过程中,该方法包括步骤s11、步骤s12及步骤s13,其中,具体包括:

步骤s11,统计目标域名在预设时间段内的访问量并确定访问所述目标域名的所有网际互联协议(internetprotocol,ip)地址中的预设数量的头部ip地址;在此,所述头部ip地址是访问所述目标域名最为活跃的请求者的ip地址;在统计目标域名中,如果当前的目标域名首次出现,或者已经过期,则设置过期时间为用户配置的访问频率的时间间隔,这个时间间隔就是上述预设时间;如果当前的目标域名不是首次出现或者已经过期的,即统计目标域名的访问量是在预置的预设时间段内进行统计的。

步骤s12,当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将访问所述目标域名的各所述头部ip地址加入ip黑名单;在此,所述ip黑名单中的ip地址包括但不限于访问所述目标域名的各头部ip地址中的一个或多个及访问其他域名的各头部ip地址中的一个或多个用于存储每个访问域名与其对应的头部ip之间的对应关系条目,以便后续能够了解到具体是哪一个域名下对应的哪一个头部ip地址被拉入黑名单进行限速。在步骤s12中,不仅实现了对访问量大于最小限速阈值且小于最大限速阈值时对应的目标域名下的各头部ip地址对应的访问请求进行限速,还避免了对访问所述目标域名的所有ip地址中除了所述预设数量的头部ip地址以外的ip地址造成误杀,从而保证了对低频率的访问目标域名的ip地址继续回源,进一步提高了网站服务的系统性能,从而提升了网站用户的使用体验。

步骤s13,当所述目标域名的访问量大于所述最大限速阈值时,拦截访问所述目标域名的所有所述ip地址对应的访问请求。例如,当所述目标域名的访问量v大于最大限速阈值vmax时,此时已经超过了目标域名的网站服务的承受能力和承受负荷范围,所以拦截访问所述目标域名的所有所述ip地址:ip1、ip2、ip3、ip4、ip5......ipn对应的访问请求,实现了对网站访问流量进行限速,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

上述步骤s11至步骤s13,通过统计目标域名在预设时间段内的访问量并确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址;当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址(活跃的ip地址)对应的访问请求,并将所述目标域名的各所述头部ip地址加入ip黑名单;当所述目标域名的访问量大于所述最大限速阈值时,拦截访问所述目标域名的所有所述ip地址对应的访问请求,即该方法通过两级限速,将限速逻辑进行局部化设计,避免对访问所述目标域名的ip地址造成误杀,保证了对访问所述目标域名的低频率的ip地址继续回源,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

例如,首先,统计在预设时间段内的各个域名的访问次数,继而统计得到目标域名在预设时间段t内的访问量v;然后,确定访问所述目标域名的所有ip地址分别为:ip1、ip2、ip3、ip4、ip5......ipn中的预设数量的头部ip地址(访问所述目标域名最频繁的ip地址)ip1、ip3、ip4、ip5、ip10......ipm,其中,所述头部ip地址ip1、ip3、ip4、ip5、ip10......ipm的数量为预设数量,以便后续执行步骤s12和步骤s13。当所述目标域名的访问量v大于最小限速阈值vmin且小于最大限速阈值vmax时,拦截访问所述目标域名的各所述头部ip地址ip1、ip3、ip4、ip5、ip10......ipm对应的访问请求,并将访问所述目标域名的各所述头部ip地址ip1、ip3、ip4、ip5、ip10......ipm加入ip黑名单,即通过采用两级限速的方案,将限速逻辑进行局部化,避免对访问所述目标域名的ip地址造成误杀,保证了对低频率的访问所述目标域名的ip地址继续回源。当所述目标域名的访问量v大于最大限速阈值vmax时,此时已经超过了目标域名的网站服务的承受能力范围,所以拦截访问所述目标域名的所有所述ip地址:ip1、ip2、ip3、ip4、ip5......ipn对应的访问请求,实现了对网站访问流量进行限速,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

接着本申请的上述实施例,所述统计目标域名在预设时间段内的访问量,包括:

采用进程私有变量统计目标域名在预设时间段内的访问量。

例如,本申请利用进程私有变量取代传统的共享内存来统计每个域名在预设时间内的访问量,即通过进程私有变量来统计每个域名(比如目标域名)的访问频率,避免了各个worker进程访问共享内存时的加锁等开销,提高了系统性能。

接着本申请的上述实施例,所述确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址,包括:

统计访问所述目标域名的所有所述ip地址中的各所述ip地址的访问次数;在此,本申请利用进程私有变量统计访问各个域名的所有ip地址中的各所述ip地址的访问次数,不仅实现了对访问不同域名的各个ip地址的访问次数的统计,还避免了各个worker进程访问共享内存时的加锁等开销,提高了系统性能。

基于所述访问次数从所有所述ip地址中,确定出访问所述目标域名最频繁的所述预设数量的头部ip地址;

其中,所述预设数量由限速管理者预置或所述预设数量由所有所述ip地址的总数的预设比例确定的。在此,所述预设数量可以是固定的数目,也可以是与域名下的所有所述ip地址的总数的预设比例确定的,以便后续进行回源限速处理;所述限速管理者可以是编写程序的工程师。

例如,首先,统计访问所述目标域名的所有所述ip地址:ip1、ip2、ip3、ip4、ip5......ipn中的各所述ip地址ip1、ip2、ip3、ip4、ip5......ipn的访问次数分别是80、40、90、91、89......100;然后,基于各ip地址对应的访问次数80、40、90、91、89......100从所有所述ip地址ip1、ip2、ip3、ip4、ip5......ipn中,确定出访问所述目标域名最频繁的所述预设数量的头部ip地址ip1、ip3、ip4、ip5、ip10......ipm,实现对访问所述目标域名的最频繁的预设数量的头部ip地址的确定。

接着本申请的上述实施例,当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将各所述头部ip地址加入访问黑名单的同时,还包括:设置访问所述目标域名的各所述头部ip地址加入所述ip黑名单的拦截时间;在此,所述拦截时间既可以是拦截时间点,也可以是拦截时长等,所述拦截时间既可以是目标域名下的不同的头部ip地址对应不同的拦截时间,也可以是同一目标域名下的不同的头部ip地址均对应同一的拦截时间。

其中,所述方法还包括:

当拦截所述目标域名的各所述头部ip地址对应的访问请求的时间超过所述拦截时间,则允许所述时间超过所述拦截时间的头部ip地址访问所述目标域名,并将所述时间超过所述拦截时间的头部ip地址从所述ip黑名单删除;

再次统计所述时间超过所述拦截时间的头部ip地址在所述预设时间段内访问所述目标域名的访问次数。

例如,在本申请一优选实施例中,所述步骤s12当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将各所述头部ip地址加入访问黑名单,同时还设置访问所述目标域名的各所述头部ip地址ip1、ip3、ip4、ip5、ip10......ipm加入所述ip黑名单的拦截时间t(拦截)=15分钟;若拦截访问所述目标域名的各所述头部ip地址:ip1、ip3、ip4、ip5、ip10......ipm对应的访问请求的时间分别为:t1、t3、t4、t5、t10......tm,先判断拦截访问所述目标域名的各所述头部ip地址ip1、ip3、ip4、ip5、ip10......pm对应的访问请求的时间t1、t3、t4、t5、t10......tm是否超过所述拦截时间t(拦截)=15分钟(即该拦截时间为目标域名下的各头部ip地址均对应的同一拦截时间);若头部ip地址ip1对应的访问请求的时间t1大于所述拦截时间t(拦截),则允许头部ip地址ip1访问所述目标域名,并将头部ip地址ip1从所述ip黑名单删除,再次统计所述头部ip地址ip1在所述预设时间段内访问所述目标域名的访问次数,若头部ip地址ip3对应的访问请求的时间t3大于述拦截时间t(拦截),则允许头部ip地址ip3访问所述目标域名,并将头部ip地址ip3从所述ip黑名单删除,再次统计所述头部ip地址ip3在所述预设时间段内访问所述目标域名的访问次数,若头部ip地址ip4对应的访问请求的时间t3小于所述拦截时间t(拦截),则头部ip地址ip4访问所述目标域名的请求继续被拦截,......若头部ip地址im对应的访问请求的时间tm大于述拦截时间t(拦截),则允许头部ip地址ipm访问所述目标域名,并将头部ip地址ipm从所述ip黑名单删除,再次统计所述头部ip地址ipm在所述预设时间段内访问所述目标域名的访问次数,防止访问目标域名的各头部ip地址长时间被拦截,避免对所述访问目标域名的各头部ip地址造成误杀,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

本申请的又一优选实施例中,将访问所述目标域名的各所述头部ip地址加入ip黑名单之前,还包括:

基于所述目标域名和所述头部ip地址,查询所述ip黑名单中是否存在所述目标域名与所述头部ip地址之间的对应关系条目。

例如,将访问所述目标域名的各所述头部ip地址加入ip黑名单之前,将所述目标域名和所述头部ip地址作为关键要素key,查询所述ip黑名单中是否存在所述目标域名与所述头部ip地址之间的对应关系条目;如果存在,则生成用于指示所述目标域名及其对应的所述头部ip地址已存在于所述ip黑名单中的响应信息,即通过所述响应信息说明该ip地址在之前的访问历史中被回源限速模块加入到了ip黑名单中;若不存在,则执行上述步骤s12将访问所述目标域名的各所述头部ip地址加入ip黑名单,避免了重复将头部ip地址加入黑名单,便于计算所述头部ip地址的访问请求被拦截的时间,避免对访问所述目标域名的ip地址造成误杀,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

本申请的又一优选实施例中,所述方法还包括:

周期性地对访问所述目标域名的所述预设数量的头部ip地址进行统计并更新。在此,可以通过定时器任务或最小堆算法实现周期性地对访问所述目标域名的所述预设数量的头部ip地址进行统计并更新,有利于提高网站服务的高可用和系统性能,提升网站用户的使用体验。

例如,利用定时器任务算法,周期性地对访问目标域名的最频繁的头部ip地址:ip1、ip3、ip4、ip5、ip10......ipm进行访问次数的统计,并根据不同时期的预设时间段内的实时的访问次数来对目标域名下的头部ip地址:ip1、ip3、ip4、ip5、ip10......ipm进行更新,以得到目标域名下的更新后的头部ip地址分别为:ip1’、ip2’、ip4’、ip4’、ip8’......ipx’,以实现对目标域名下的头部ip地址的更新,不仅有利于对更新后的头部ip地址对应的访问请求进行拦截,还避免了对实际上已经不再是目标域名下的最频繁的头部ip地址进行误拦截的操作,从而提高网站服务的高可用和系统性能的同时,提升网站用户的使用体验。

本申请一实际应用场景中,如图2、3所示,首先,接收到用户发出的用户请求即访问请求,判断网站是否开启回源限速,若否则直接结束;若是则启动ip访问频率统计模块,进行ip访问域名频率统计,即统计预设时间段内不同域名下的各ip地址访问的次数,并计算出访问目标域名的所有ip地址中的的头部ip地址;然后,定时更新目标域名下的头部ip地址(对应图3中的topnip);接下来,进入ip动态黑名单模块,判断ip黑名单中是否已经存在上述头部ip地址,若有说明该ip地址之前被回源限速模块加入了ip黑名单中,则当前该ip地址的访问请求会被拦截;若无则进入域名访问统计模块,利用进程私有变量从网站源服务器统计目标域名的访问量(对应图3中的回源频率),判断访问量(回源频率)是否大于最小限速阈值,若否则结束操作;若是则判断访问量(回源频率)是否大于最大限速阈值,若是则直接拦截所有用户的ip地址的访问请求;若否则返回ip动态黑名单模块,将访问最频繁的ip地址(即头部ip地址)放入所述ip黑名单中,并且拦截头部ip地址的访问请求。本申请通过上述两级限速,将限速逻辑进行局部化设计,避免对访问所述目标域名的ip地址造成误杀,保证了对访问所述目标域名的低频率的ip地址继续回源,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

根据本申请的另一个方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述控制用户对垒方法。

根据本申请的另一个方面,还提供了一种用于内容分发网络回源限速的设备,其特征在于,该设备包括:

一个或多个处理器;

计算机可读介质,用于存储一个或多个计算机可读指令,

当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述在设备上控制用户对垒方法。

在此,所述设备的各实施例的详细内容,具体可参见上述设备端的控制用户对垒方法实施例的对应部分,在此,不再赘述。

综上所述,通过统计目标域名在预设时间段内的访问量并确定访问所述目标域名的所有网际互联协议ip地址中的预设数量的头部ip地址;当所述目标域名的访问量大于最小限速阈值且小于最大限速阈值时,拦截访问所述目标域名的各所述头部ip地址对应的访问请求,并将所述目标域名的各所述头部ip地址加入ip黑名单;当所述目标域名的访问量大于所述最大限速阈值时,拦截访问所述目标域名的所有所述ip地址对应的访问请求,即该方法通过两级限速,将限速逻辑进行局部化设计,避免对访问所述目标域名的ip地址造成误杀,保证了对访问所述目标域名的低频率的ip地址继续回源,提高了网站服务的高可用和系统性能,从而提升了网站用户的使用体验。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(asic)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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