一种防止短时间内重复请求api服务器的方法

文档序号:7852869阅读:456来源:国知局
专利名称:一种防止短时间内重复请求api服务器的方法
技术领域
本发明属于信息技术领域,特别涉及一种防止短时间内重复请求API服务器的方
法。
背景技术
随着互联网技术的高速发展,网络应用也变得越来越丰富多样,服务端通过对各种各样的请求进行处理,并将处理结果返回信息给网络终端。如图I所示,在未做其他保护处理下,服务器端在收到消息后,直接进行相关的业务处理,并将处理结果信息返回给客户端。这种处理流程存在的问题是1、如果前端网页客户端未做任何保护措施,网页客户端可能存在恶意刷新页面造成重复发送同样请求的情况;2、在大规模客户端集群的情况下,多用户同时发送请求服务器端进行处理,服务器端在没有缓冲机制的情况下可能造成服务器端负载过大,无法及时处理甚至导致服务程序崩溃。

发明内容
本发明的目的在于克服现有技术的不足,提供一种防止短时间内重复请求API服务器的方法,该方法通过在服务器端添加缓冲机制,过滤短期内重复的请求,拒绝可能会超出系统负载上限的请求。本发明解决其技术问题是采取以下技术方案实现的一种防止短时间内重复请求API服务器的方法,包括以下步骤步骤I :在系统启动时,生成用于存储固定条目的缓存文件;步骤2 :从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要;步骤3 :取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作,否则执行步骤4 ;步骤4:取出缓存文件中时间戳信息与当前消息信息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作,否则执行步骤5;步骤5 :将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作;步骤6 :在所有操作都执行完成后,将缓存文件中相关条目修改为默认消息概要。而且,所述步骤I生成缓存文件的方法为系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁。而且,所述的固定条目的格式为时间信息加上默认消息概要。而且,所述步骤2组装消息概要的方法为当有请求消息到达服务端时,取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,从消息的时间戳信息中截取有效字段组成有效时间戳信息,将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。而且,所述步骤4在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。而且,所述步骤5在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。而且,所述步骤6在所有操作都执行完成后,将执行结果返回给客户端。本发明的优点和积极效果是本发明通过在服务器端添加缓冲机制,过滤短期内重复的请求,拒绝可能会超出系统负载上限的请求,当用户在客户端进行操作时,无论是任何原因导致的请求重发,都会被服务器端识别出并且拒绝重复的操作,直至第一次的操作由内部全部完成后,才会响应 相关的操作;同时,在大量用户并发访问服务器端,要求服务器端进行相关处理时,服务器可依据缓存中的相关信息,获悉当前服务器相关的负载信息,从而决定是否及时处理当前业务,若不做处理,则将相关的信息返回给客户端。本发明实现了对服务器端的处理操作的双层的保护功能,初步保证服务器端的负载情况良好,并且避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。


图I是现有的服务器端接收数据时的处理流程图;图2是本发明的服务器端接收数据时的处理流程图。
具体实施例方式以下结合附图对本发明实施例做进一步详述一种防止短时间内重复请求API服务器的方法,是在服务器端添加缓冲机制,过滤短期内重复的请求,即在服务器端程序处理时,加入缓冲区保存当前处理的任务,在缓冲区读写异常时,及时返回系统繁忙的错误信息给客户端,服务器端将每次接收到的请求与当前缓冲区中的任务进行对比,拒绝重复的操作,这样能够对服务器端的处理操作进行双层保护,初步保证服务器端的负载情况良好,并且避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。本发明引入了一个有效时间戳信息的概念假设服务器端接收的消息在正常情况下十秒内均可以处理完成,并且在一百毫秒内,服务器的负载能力只允许一条请求的操作内容,则对于系统来讲,每次请求的时间戳信息中,生效的内容即为从标准基准时间经历的毫秒数的倒数第三位至倒数第四位的内容,我们将此生效内容命名为有效时间戳信息。如图2所示,一种防止短时间内重复请求API服务器的方法包括以下步骤步骤I :在系统启动时,在指定目录下生成指定文件名的缓存文件,该缓存文件用于存储固定条目的缓存信息,每个条目的格式为时间信息加上默认消息概要。在本步骤中,在系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据系统可能的请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目(按照上述内容即为从OO到99的100条固定条目),以约定的不与请求内容冲突的符号分隔开,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁,只有所有对此缓存文件的读写操作必须持有此锁才可以进行。步骤2 :从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。在本步骤中,当有请求消息到达服务端时,根据消息相关的格式(如果不满足约定的格式,则返回相关错误信息)取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,将消息的时间戳截取有效字段组成有效时间戳信息(在上述约定中为从标准基准时间经历的毫秒数的倒数第三位至倒数第四位),将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。步骤3 :取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目则不执行该请求的相应操作并向客户端返回操作过于频繁的提示信息,否则执行步骤4。在本步骤中,取出缓存文件中全部条目的消息概要(在上述约定中即为100条),将当前请求的消息概要与上述条目中的消息概要进行逐个对比,若有完全相同的消息概要,则表明在约定的时间内,有完全相同的操作正在被执行,并且是由同一用户发出的请求,因此可以判定,此用户在系统执行完成之前即发送了重复的请求,服务器端拒绝此重复操作,并返回错误信息提示用户重复操作。步骤4:取出缓存文件中时间戳信息与当前消息信息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作并向客户端返回操作过于频繁的提示信息,否则执行步骤5。在本步骤中,如果对比全部条目的消息概要,没有发现完全相同的条目,则表示在约定的时间内,并没有相同的操作正在被执行,此次请求的操作在系统负载允许的情况下可以被执行。因此,取出此次操作的有效时间戳信息,在缓存文件全部条目中,检索与此有效时间戳信息相同的条目,取出这个条目的消息概要,如果,这个消息概要不为默认消息概要,则表明在约定的服务器负载能力下(在上述约定中即为每百毫秒执行一次操作),服务器正在执行其他操作,本次请求的操作超出了服务器负载能力,服务器端拒绝此次操作,并返回错误信息提示用户服务器繁忙。步骤5 :将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作。在本步骤中,如果步骤4中取出的条目的消息概要为默认消息概要,则表明此次请求操作在服务器允许的负载能力范围内,因此,此次请求操作可以被执行,在操作执行之前,将本次操作的消息概要覆盖步骤4中取出条目的消息概要,表明在这个时间下,此操作正在被执行。步骤6:在所有操作都执行完成后,将执行结果返回给客户端,并将缓存文件中相关条目修改为默认消息概要。本步骤是在整个请求操作执行全部结束并且将执行结果返回给客户端之后,将步骤4中取出条目的消息概要重新覆盖写为默认消息概要,表明在这个时间下,没有操作正在被执行。 通过上述步骤即可实现防止短时间内重复请求API服务器的方法。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式
中所述的实施例, 凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
权利要求
1.一种防止短时间内重复请求API服务器的方法,其特征在于包括以下步骤 步骤I :在系统启动时,生成用于存储固定条目的缓存文件; 步骤2 :从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要; 步骤3 :取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作,否则执行步骤4 ; 步骤4:取出缓存文件中时间戳信息与当前消息信息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作,否则执行步骤5; 步骤5 :将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作; 步骤6 :在所有操作都执行完成后,将缓存文件中相关条目修改为默认消息概要。
2.根据权利要求I所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述步骤I生成缓存文件的方法为系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁。
3.根据权利要求I或2所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述的固定条目的格式为时间信息加上默认消息概要。
4.根据权利要求I所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述步骤2组装消息概要的方法为当有请求消息到达服务端时,取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,从消息的时间戳信息中截取有效字段组成有效时间戳信息,将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。
5.根据权利要求I所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述步骤4在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。
6.根据权利要求I所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述步骤5在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。
7.根据权利要求I所述的一种防止短时间内重复请求API服务器的方法,其特征在于所述步骤6在所有操作都执行完成后,将执行结果返回给客户端。
全文摘要
本发明涉及一种防止短时间内重复请求API服务器的方法,包括以下步骤1、生成缓存文件;2、组装消息概要;3、取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作;4、取出缓存文件中时间戳信息与当前消息信息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作;5、将本次操作覆盖此条目写入缓存文件,并执行此次请求的相应操作;6、将缓存文件中相关条目修改为默认消息概要。本发明实现了对服务器端的处理操作的双层的保护功能,避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。
文档编号H04L29/08GK102710776SQ20121018219
公开日2012年10月3日 申请日期2012年6月5日 优先权日2012年6月5日
发明者俞志坚, 刘晓军, 朱泽, 朱誉, 范鹏 申请人:天津兆民云计算科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1