一种业务请求防频的方法和装置制造方法及图纸

技术编号:21431649 阅读:18 留言:0更新日期:2019-06-22 11:46
本发明专利技术公开了一种业务请求防频的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取当前业务代码对应的缓存键,更新缓存键的值以得到返回值;将返回值与防频次数进行比较,确定返回值大于防频次数时,不执行业务代码。该实施方式克服了现有技术中存在因同时处理多个业务而导致防频失效、重复编写率高而导致的工作量大以及出现网络用时长等安全可靠性低的问题,进而达到降低防频失效以及降低工作量的技术效果,有利于提高程序开发效率,减少程序员的工作量。

【技术实现步骤摘要】
一种业务请求防频的方法和装置
本专利技术涉及计算机
,尤其涉及一种业务请求防频的方法和装置。
技术介绍
随着互联网的发展,越来越多的用户通过网络购物、交友、获取资讯等,给互联网服务的提供者带来了比较大的压力,为了保证服务可以承受一定的用户访问量与并发量,服务一般采用分布式部署的方式,即将同一服务部署到n台服务器上,这n台服务器同时对外提供服务。但由于这n台服务器之间并无通信,很容易被恶意攻击者攻击(例如:DDoS攻击);同时如果用户正常的请求重复发送且被不同的服务器处理,很容易出现业务上的混乱或者导致服务器出现大量异常,从而导致资源的浪费并危及服务的可用性。为了保证服务的稳定我们需要对用户在特定时间内的访问次数做限制,即防频。当前主流的分布式防频的方式是利用缓存Redis中的SET命令与GET命令结合来实现,Redis是一个高性能的内存数据库,存储着键值对数据。Redis使用单进程单线程模式,可以保证并发顺序,所有操作通过内存直接处理,效率极高,并支持分布式集群配置。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:现有技术中在采取防频措施时存在因同时处理多个业务而导致防频失效、重复编写率高而导致的工作量大以及出现网络用时长等安全可靠性低的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种业务请求防频的方法和装置,通过在业务代码中预设注解配置信息,然后根据返回值与注解配置信息做比较的方式,有效的降低了防频失效的问题,同时降低了工作量。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种业务请求防频的方法。本专利技术实施例的一种业务请求防频的方法,在业务代码中预设有注解配置信息,注解配置信息包括防频次数,该方法包括:获取当前业务代码对应的缓存键,更新缓存键的值以得到返回值;将返回值与防频次数进行比较,确定返回值大于防频次数时,不执行业务代码。优选的,在本专利技术的实施方式中注解配置信息还包括缓存键前缀,获取当前业务代码对应的缓存键的步骤包括:将获取到的缓存键前缀与用户的唯一标识进行拼接,以得到缓存键,其中,用户的唯一标识是当前业务代码的用户的唯一标识。优选的,在本专利技术的实施方式中在将返回值与防频次数进行比较的步骤之前还包括:判断返回值的大小,若返回值等于1,则直接执行业务代码;若返回值大于1,则执行将返回值与防频次数进行比较的步骤。优选的,在本专利技术的实施方式中确定返回值大于防频次数时,判断缓存键的有效期是否为永久性;若为永久性,则抛出异常;若不为永久性,则抛出次数超限异常。优选的,在本专利技术的实施方式中当抛出异常时,删除缓存键并执行业务代码。优选的,在本专利技术的实施方式中由面向切面编程框架SpringAOP配置实现。为实现上述目的,根据本专利技术的另一方面,提供了一种业务请求防频的装置。本专利技术实施例的一种业务请求防频的装置,在业务代码中预设有注解配置信息,注解配置信息包括防频次数,该装置包括:获取模块,用于获取当前业务代码对应的缓存键,更新缓存键的值以得到返回值;处理模块,用于将返回值与防频次数进行比较,确定返回值大于防频次数时,不执行业务代码。优选的,在本专利技术的实施方式中注解配置信息还包括缓存键前缀,获取模块还用于:将获取到的缓存键前缀与用户的唯一标识进行拼接,以得到缓存键,其中,用户的唯一标识是当前业务代码的用户的唯一标识。优选的,在本专利技术的实施方式中还包括判断模块,用于:判断返回值的大小,若返回值等于1,则直接执行业务代码;若返回值大于1,则执行将返回值与防频次数进行比较的步骤。优选的,在本专利技术的实施方式中处理模块还用于:确定返回值大于防频次数时,判断缓存键的有效期是否为永久性;若为永久性,则抛出异常;若不为永久性,则抛出次数超限异常。优选的,在本专利技术的实施方式中当抛出异常时,删除缓存键并执行业务代码。优选的,在本专利技术的实施方式中由面向切面编程框架SpringAOP配置实现。为实现上述目的,根据本专利技术的再一方面,提供了一种电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本专利技术业务请求防频的方法。为实现上述目的,根据本专利技术的再一方面,提供了一种计算机可读存储介质。本专利技术实施例的一种计算机可读存储介质,其上存储有计算机程序,其特征在于,程序被处理器执行时实现本专利技术业务请求防频的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用在业务代码中添加注解配置信息,并利用注解配置信息来防频的技术手段,所以克服了现有技术中存在因同时处理多个业务而导致防频失效、重复编写率高而导致的工作量大以及出现网络用时长等安全可靠性低的问题,进而达到降低防频失效以及降低工作量的技术效果,有利于提高程序开发效率,减少程序员的工作量。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是根据本专利技术实施例的一种业务请求防频的方法的主要流程的示意图;图2是根据本专利技术实施例实施业务请求防频的方法的流程示意图;图3是根据本专利技术实施例的一种业务请求防频的装置的主要模块的示意图;图4是本专利技术实施例可以应用于其中的示例性系统架构图;图5是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的一种业务请求防频的方法的主要流程的示意图,如图1所示,本专利技术实施例的一种业务请求防频的方法主要包括如下步骤:步骤S101:获取当前业务代码对应的缓存键,更新缓存键的值以得到返回值。通过在业务代码中预设注解配置信息,并在后续的处理过程中利用注解配置信息来进行防频,从而达到本专利技术的技术效果,克服了现有技术中存在因同时处理多个业务而导致防频失效、重复编写率高而导致的工作量大以及出现网络用时长等安全可靠性低的问题。将缓存键的值+1处理的方式可以采用常用的INCR命令执行。需要说明的是,更新缓存键的值的方式可以是使缓存键的值自身更新的方式,例如,利用INCR命令将缓存键的值+1处理后得到返回值。需要指出的是,本申请中的缓存键的值是对业务代码进行处理后返回的一个数值,表示了该业务代码具体是第几次进行处理;防频是为了保证服务的稳定,从而需要对用户在特定时间内的访问次数做出限制机制。在本专利技术的实施方式中,注解配置信息还包括缓存键前缀,获取当前业务代码对应的缓存键的步骤包括:将获取到的缓存键前缀与用户的唯一标识进行拼接,以得到缓存键,其中,用户的唯一标识是当前业务代码的用户的唯一标识。用户的唯一标识可以采用用户的ID、IMS以及其他形式的组合。本文档来自技高网...

【技术保护点】
1.一种业务请求防频的方法,其特征在于,在业务代码中预设有注解配置信息,所述注解配置信息包括防频次数,所述方法包括:获取当前业务代码对应的缓存键,更新所述缓存键的值以得到返回值;将所述返回值与所述防频次数进行比较,确定所述返回值大于所述防频次数时,不执行所述业务代码。

【技术特征摘要】
1.一种业务请求防频的方法,其特征在于,在业务代码中预设有注解配置信息,所述注解配置信息包括防频次数,所述方法包括:获取当前业务代码对应的缓存键,更新所述缓存键的值以得到返回值;将所述返回值与所述防频次数进行比较,确定所述返回值大于所述防频次数时,不执行所述业务代码。2.根据权利要求1所述的方法,其特征在于,所述注解配置信息还包括缓存键前缀,获取当前业务代码对应的缓存键的步骤包括:将获取到的所述缓存键前缀与用户的唯一标识进行拼接,以得到缓存键,其中,所述用户的唯一标识是所述当前业务代码的用户的唯一标识。3.根据权利要求1所述的方法,其特征在于,在将所述返回值与所述防频次数进行比较的步骤之前还包括:判断所述返回值的大小,若所述返回值等于1,则直接执行所述业务代码;若所述返回值大于1,则执行将所述返回值与所述防频次数进行比较的步骤。4.根据权利要求1所述的方法,其特征在于,确定所述返回值大于所述防频次数时,判断所述缓存键的有效期是否为永久性;若为永久性,则抛出异常;若不为永久性,则抛出次数超限异常。5.根据权利要求4所述的方法,其特征在于,当所述抛出异常时,删除所述缓存键并执行所述业务代码。6.根据权利要求1-5任一项所述的方法,其特征在于,由面向切面编程框架SpringAOP配置实现。7.一种业务请求防频的装置,其特征在于,在业务代码中预设有注解配置信息,所述注解配置信息包括防频次数,所述装置包括:获取模块,用于获取当前业务代码对应的缓存键,更...

【专利技术属性】
技术研发人员:董焕强
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1