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

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

Info

Publication number
CN102710776B
CN102710776B CN201210182193.8A CN201210182193A CN102710776B CN 102710776 B CN102710776 B CN 102710776B CN 201210182193 A CN201210182193 A CN 201210182193A CN 102710776 B CN102710776 B CN 102710776B
Authority
CN
China
Prior art keywords
information
cache file
message
request
message summary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210182193.8A
Other languages
English (en)
Other versions
CN102710776A (zh
Inventor
朱泽
范鹏
刘晓军
朱誉
俞志坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Shangshanneng And Energy Technology Co ltd
Original Assignee
TIANJIN ZHAOMINYUN COMPUTING TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN ZHAOMINYUN COMPUTING TECHNOLOGY CO LTD filed Critical TIANJIN ZHAOMINYUN COMPUTING TECHNOLOGY CO LTD
Priority to CN201210182193.8A priority Critical patent/CN102710776B/zh
Publication of CN102710776A publication Critical patent/CN102710776A/zh
Application granted granted Critical
Publication of CN102710776B publication Critical patent/CN102710776B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种防止短时间内重复请求API服务器的方法,包括以下步骤:1、生成缓存文件;2、组装消息概要;3、取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作;4、取出缓存文件中时间戳信息与当前消息信息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作;5、将本次操作覆盖此条目写入缓存文件,并执行此次请求的相应操作;6、将缓存文件中相关条目修改为默认消息概要。本发明实现了对服务器端的处理操作的双层的保护功能,避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。

Description

一种防止短时间内重复请求API服务器的方法
技术领域
本发明属于信息技术领域,特别涉及一种防止短时间内重复请求API服务器的方法。
背景技术
随着互联网技术的高速发展,网络应用也变得越来越丰富多样,服务端通过对各种各样的请求进行处理,并将处理结果返回信息给网络终端。如图1所示,在未做其他保护处理下,服务器端在收到消息后,直接进行相关的业务处理,并将处理结果信息返回给客户端。这种处理流程存在的问题是:1、如果前端网页客户端未做任何保护措施,网页客户端可能存在恶意刷新页面造成重复发送同样请求的情况;2、在大规模客户端集群的情况下,多用户同时发送请求服务器端进行处理,服务器端在没有缓冲机制的情况下可能造成服务器端负载过大,无法及时处理甚至导致服务程序崩溃。
发明内容
本发明的目的在于克服现有技术的不足,提供一种防止短时间内重复请求API服务器的方法,该方法通过在服务器端添加缓冲机制,过滤短期内重复的请求,拒绝可能会超出系统负载上限的请求。
本发明解决其技术问题是采取以下技术方案实现的:
一种防止短时间内重复请求API服务器的方法,包括以下步骤:
步骤1:在系统启动时,生成用于存储固定条目的缓存文件;
步骤2:从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要;
步骤3:取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作,否则执行步骤4;
步骤4:取出缓存文件中时间戳信息与当前消息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作,否则执行步骤5;
步骤5:将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作;
步骤6:在所有操作都执行完成后,将缓存文件中相关条目修改为默认消息概要。
而且,所述步骤1生成缓存文件的方法为:系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁。
而且,所述的固定条目的格式为时间信息加上默认消息概要。
而且,所述步骤2组装消息概要的方法为:当有请求消息到达服务端时,取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,从消息的时间戳信息中截取有效字段组成有效时间戳信息,将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。
而且,所述步骤4在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。
而且,所述步骤6在所有操作都执行完成后,将执行结果返回给客户端。
本发明的优点和积极效果是:
本发明通过在服务器端添加缓冲机制,过滤短期内重复的请求,拒绝可能会超出系统负载上限的请求,当用户在客户端进行操作时,无论是任何原因导致的请求重发,都会被服务器端识别出并且拒绝重复的操作,直至第一次的操作由内部全部完成后,才会响应相关的操作;同时,在大量用户并发访问服务器端,要求服务器端进行相关处理时,服务器可依据缓存中的相关信息,获悉当前服务器相关的负载信息,从而决定是否及时处理当前业务,若不做处理,则将相关的信息返回给客户端。本发明实现了对服务器端的处理操作的双层的保护功能,初步保证服务器端的负载情况良好,并且避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。
附图说明
图1是现有的服务器端接收数据时的处理流程图;
图2是本发明的服务器端接收数据时的处理流程图。
具体实施方式
以下结合附图对本发明实施例做进一步详述:
一种防止短时间内重复请求API服务器的方法,是在服务器端添加缓冲机制,过滤短期内重复的请求,即:在服务器端程序处理时,加入缓冲区保存当前处理的任务,在缓冲区读写异常时,及时返回系统繁忙的错误信息给客户端,服务器端将每次接收到的请求与当前缓冲区中的任务进行对比,拒绝重复的操作,这样能够对服务器端的处理操作进行双层保护,初步保证服务器端的负载情况良好,并且避免重复的处理流程造成服务器资源浪费甚至是系统业务逻辑紊乱等情况发生。
本发明引入了一个有效时间戳信息的概念:假设服务器端接收的消息在正常情况下十秒内均可以处理完成,并且在一百毫秒内,服务器的负载能力只允许一条请求的操作内容,则对于系统来讲,每次请求的时间戳信息中,生效的内容即为从标准基准时间经历的毫秒数的倒数第三位至倒数第四位的内容,我们将此生效内容命名为有效时间戳信息。
如图2所示,一种防止短时间内重复请求API服务器的方法包括以下步骤:
步骤1:在系统启动时,在指定目录下生成指定文件名的缓存文件,该缓存文件用于存储固定条目的缓存信息,每个条目的格式为时间信息加上默认消息概要。
在本步骤中,在系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据系统可能的请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目(按照上述内容即为从00到99的100条固定条目),以约定的不与请求内容冲突的符号分隔开,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁,只有所有对此缓存文件的读写操作必须持有此锁才可以进行。
步骤2:从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。
在本步骤中,当有请求消息到达服务端时,根据消息相关的格式(如果不满足约定的格式,则返回相关错误信息)取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,将消息的时间戳截取有效字段组成有效时间戳信息(在上述约定中为从标准基准时间经历的毫秒数的倒数第三位至倒数第四位),将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。
步骤3:取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目则不执行该请求的相应操作并向客户端返回操作过于频繁的提示信息,否则执行步骤4。
在本步骤中,取出缓存文件中全部条目的消息概要(在上述约定中即为100条),将当前请求的消息概要与上述条目中的消息概要进行逐个对比,若有完全相同的消息概要,则表明在约定的时间内,有完全相同的操作正在被执行,并且是由同一用户发出的请求,因此可以判定,此用户在系统执行完成之前即发送了重复的请求,服务器端拒绝此重复操作,并返回错误信息提示用户重复操作。
步骤4:取出缓存文件中时间戳信息与当前消息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作并向客户端返回操作过于频繁的提示信息,否则执行步骤5。
在本步骤中,如果对比全部条目的消息概要,没有发现完全相同的条目,则表示在约定的时间内,并没有相同的操作正在被执行,此次请求的操作在系统负载允许的情况下可以被执行。因此,取出此次操作的有效时间戳信息,在缓存文件全部条目中,检索与此有效时间戳信息相同的条目,取出这个条目的消息概要,如果,这个消息概要不为默认消息概要,则表明在约定的服务器负载能力下(在上述约定中即为每百毫秒执行一次操作),服务器正在执行其他操作,本次请求的操作超出了服务器负载能力,服务器端拒绝此次操作,并返回错误信息提示用户服务器繁忙。
步骤5:将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作。
在本步骤中,如果步骤4中取出的条目的消息概要为默认消息概要,则表明此次请求操作在服务器允许的负载能力范围内,因此,此次请求操作可以被执行,在操作执行之前,将本次操作的消息概要覆盖步骤4中取出条目的消息概要,表明在这个时间下,此操作正在被执行。
步骤6:在所有操作都执行完成后,将执行结果返回给客户端,并将缓存文件中相关条目修改为默认消息概要。
本步骤是在整个请求操作执行全部结束并且将执行结果返回给客户端之后,将步骤4中取出条目的消息概要重新覆盖写为默认消息概要,表明在这个时间下,没有操作正在被执行。
通过上述步骤即可实现防止短时间内重复请求API服务器的方法。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (6)

1.一种防止短时间内重复请求API服务器的方法,其特征在于:包括以下步骤:
步骤1:在系统启动时,生成用于存储固定条目的缓存文件;
步骤2:从收到的请求消息中取出发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要;
步骤3:取出缓存文件中全部条目的消息概要,与当前消息概要进行对比,如果有完全相同的条目,则不执行该请求的相应操作,否则执行步骤4;
步骤4:取出缓存文件中时间戳信息与当前消息概要相同的条目,如果缓存文件被读写锁保护或者取出的条目中消息概要不是默认消息概要,则不执行该请求的相应操作,否则执行步骤5;
步骤5:将本次操作覆盖此条目写入缓存文件,并开始执行此次请求的相应操作;
步骤6:在所有操作都执行完成后,将缓存文件中相关条目修改为默认消息概要。
2.根据权利要求1所述的一种防止短时间内重复请求API服务器的方法,其特征在于:所述步骤1生成缓存文件的方法为:系统启动时,从服务端程序配置文件中读取约定的缓存文件的目录以及文件名,根据有效时间戳信息的长度生成全部条目的有效时间戳信息,根据请求内容约定默认消息概要的内容,将这些内容分别组装成固定条目,将全部条目覆盖写入缓存文件,并且生成与此缓存文件相关的读写锁。
3.根据权利要求1或2所述的一种防止短时间内重复请求API服务器的方法,其特征在于:所述的固定条目的格式为时间信息加上默认消息概要。
4.根据权利要求1所述的一种防止短时间内重复请求API服务器的方法,其特征在于:所述步骤2组装消息概要的方法为:当有请求消息到达服务端时,取出消息的时间戳信息、发送者信息、操作类型信息、操作对象信息以及操作相关参数信息,从消息的时间戳信息中截取有效字段组成有效时间戳信息,将其中的发送者信息、操作类型信息、操作对象信息以及操作相关参数信息组装成消息概要。
5.根据权利要求1所述的一种防止短时间内重复请求API服务器的方法,其特征在于:所述步骤4在不执行请求的相应操作的同时,还向客户端返回操作过于频繁的提示信息。
6.根据权利要求1所述的一种防止短时间内重复请求API服务器的方法,其特征在于:所述步骤6在所有操作都执行完成后,将执行结果返回给客户端。
CN201210182193.8A 2012-06-05 2012-06-05 一种防止短时间内重复请求api服务器的方法 Active CN102710776B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210182193.8A CN102710776B (zh) 2012-06-05 2012-06-05 一种防止短时间内重复请求api服务器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210182193.8A CN102710776B (zh) 2012-06-05 2012-06-05 一种防止短时间内重复请求api服务器的方法

Publications (2)

Publication Number Publication Date
CN102710776A CN102710776A (zh) 2012-10-03
CN102710776B true CN102710776B (zh) 2014-08-20

Family

ID=46903322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210182193.8A Active CN102710776B (zh) 2012-06-05 2012-06-05 一种防止短时间内重复请求api服务器的方法

Country Status (1)

Country Link
CN (1) CN102710776B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104702486B (zh) * 2013-12-09 2019-08-13 腾讯科技(深圳)有限公司 一种消息发表的方法及装置
CN104537283A (zh) * 2014-12-17 2015-04-22 安徽清新互联信息科技有限公司 一种基于网络的软件授权控制装置
CN105069038A (zh) * 2015-07-22 2015-11-18 上海斐讯数据通信技术有限公司 网页操作请求处理方法及装置
CN107689969B (zh) * 2016-08-03 2020-01-17 华为技术有限公司 一种缓存策略的确定方法及装置
CN107733966A (zh) * 2017-06-14 2018-02-23 广东网金控股股份有限公司 一种区块链系统与传统中心化it系统的连接装置
CN109376539A (zh) * 2018-09-07 2019-02-22 广州神马移动信息科技有限公司 内容数据的获取方法、装置、系统、存储介质及电子设备
CN110851456B (zh) * 2019-11-08 2022-03-29 北京字节跳动网络技术有限公司 一种信息处理方法、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1909552A (zh) * 2006-08-15 2007-02-07 华为技术有限公司 一种信息访问方法和系统
CN101127783A (zh) * 2007-09-28 2008-02-20 北京金山软件有限公司 一种网站缓存方法和一种网站缓存的装置
CN101645095A (zh) * 2009-08-31 2010-02-10 深圳市茁壮网络股份有限公司 一种浏览器在屏数据更新的方法、终端和服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1909552A (zh) * 2006-08-15 2007-02-07 华为技术有限公司 一种信息访问方法和系统
CN101127783A (zh) * 2007-09-28 2008-02-20 北京金山软件有限公司 一种网站缓存方法和一种网站缓存的装置
CN101645095A (zh) * 2009-08-31 2010-02-10 深圳市茁壮网络股份有限公司 一种浏览器在屏数据更新的方法、终端和服务器

Also Published As

Publication number Publication date
CN102710776A (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
CN102710776B (zh) 一种防止短时间内重复请求api服务器的方法
CN110865888B (zh) 一种资源加载方法、装置、服务器及存储介质
US8756613B2 (en) Scalable, parallel processing of messages while enforcing custom sequencing criteria
US8910277B1 (en) Process-based domain isolation
CN107315972B (zh) 一种大数据非结构化文件动态脱敏方法及系统
CA2506032A1 (en) Resource manager for clients in an information distribution system
US20130179730A1 (en) Apparatus and method for fault recovery
WO2011086787A1 (ja) 機密情報漏洩防止システム、機密情報漏洩防止方法及び機密情報漏洩防止プログラム
CN104219235A (zh) 一种分布式交易请求方法及装置
CN107463378A (zh) 一种基于注解的本地缓存实现方法、存储设备及电子设备
KR101316902B1 (ko) 멀티테넌시를 지원하기 위한 확장된 자바가상머신 및 이를 이용한 멀티테넌시 처리 방법
CN108429785A (zh) 一种爬虫识别加密串的生成方法、爬虫识别方法及装置
CN112615792B (zh) 接口限流方法及装置
US20170004316A1 (en) Alternate clipboard for secure applications
US20170052979A1 (en) Input/Output (IO) Request Processing Method and File Server
CN110727507B (zh) 一种消息的处理方法、装置、计算机设备和存储介质
CN112035255A (zh) 线程池资源管理任务处理方法、装置、设备及存储介质
CN105512329A (zh) 基于go语言的动态切图系统
CN109325192B (zh) 一种广告防屏蔽的方法和装置
KR20080067642A (ko) 컴퓨터 프로그램 코드를 번역하기 위한 방법, 시스템 및상기 방법을 수행하기 위한 명령어가 저장된 컴퓨터판독가능 매체
US20170255548A1 (en) Method and system for dynamically updating data fields of buffers
CN114598520B (zh) 资源访问控制的方法、装置、设备及存储介质
US10915646B2 (en) Method and apparatus for network secure storage
US8886675B2 (en) Method and system for managing data clusters
CN113886082A (zh) 请求处理方法、装置、计算设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151203

Address after: 200431 Shanghai city Baoshan District huma Road No. 547 room 328

Patentee after: SHANGHAI ZOPLE CLOUD COMPUTING Co.,Ltd.

Patentee after: SHANGHAI ZENGRONG DATA TECHNOLOGY CO.,LTD.

Address before: 300384 Tianjin City, Nankai District Huayuan Industrial Park Haitai development block 6F production base of green G six

Patentee before: Tianjin Zhaominyun Computing Technology Co.,Ltd.

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160601

Address after: Yangpu District Yin 200438 Shanghai Road No. 757 room 127

Patentee after: SHANGHAI STREAMIND CLOUD COMPUTERING TECHNOLOGY Co.,Ltd.

Address before: 200431 Shanghai city Baoshan District huma Road No. 547 room 328

Patentee before: SHANGHAI ZOPLE CLOUD COMPUTING Co.,Ltd.

Patentee before: SHANGHAI ZENGRONG DATA TECHNOLOGY CO.,LTD.

C56 Change in the name or address of the patentee
CP02 Change in the address of a patent holder

Address after: Yangpu District Yin 200438 Shanghai Road No. 757 room 127

Patentee after: SHANGHAI STREAMIND CLOUD COMPUTERING TECHNOLOGY Co.,Ltd.

Address before: 757 200438, good 127, Yin Road, Shanghai, Yangpu District

Patentee before: SHANGHAI STREAMIND CLOUD COMPUTERING TECHNOLOGY Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Kong Yao

Inventor before: Zhu Ze

Inventor before: Fan Peng

Inventor before: Liu Xiaojun

Inventor before: Zhu Yu

Inventor before: Yu Zhijian

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Yangpu District zentek road 200433 Shanghai City No. 53 Building 5 unit 502-505

Patentee after: SHANGHAI MINGWORK INFORMATION TECHNOLOGY CO.,LTD.

Address before: Yangpu District Yin 200438 Shanghai Road No. 757 room 127

Patentee before: SHANGHAI STREAMIND CLOUD COMPUTERING TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231128

Address after: Room 1201, No. 258 Guoxia Road, Yangpu District, Shanghai, 200433

Patentee after: Shanghai Shangshanneng and Energy Technology Co.,Ltd.

Address before: 200433 502-505, unit 5, 53 East Road, Yangpu District, Shanghai.

Patentee before: SHANGHAI MINGWORK INFORMATION TECHNOLOGY CO.,LTD.