CN113438227B - 重复请求的限流方法、装置、设备及存储介质 - Google Patents

重复请求的限流方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113438227B
CN113438227B CN202110698923.9A CN202110698923A CN113438227B CN 113438227 B CN113438227 B CN 113438227B CN 202110698923 A CN202110698923 A CN 202110698923A CN 113438227 B CN113438227 B CN 113438227B
Authority
CN
China
Prior art keywords
user access
access request
information
time interval
calling
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
CN202110698923.9A
Other languages
English (en)
Other versions
CN113438227A (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.)
Shenzhen Houmao Information Technology Co ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202110698923.9A priority Critical patent/CN113438227B/zh
Publication of CN113438227A publication Critical patent/CN113438227A/zh
Application granted granted Critical
Publication of CN113438227B publication Critical patent/CN113438227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及信息安全技术领域,揭露了重复请求的限流方法、装置、设备及存储介质,包括通过预设的拦截器拦截用户访问请求;基于用户访问请求,进行查数据表操作,以判断是否为首次发送,数据表存储有历史用户访问请求,及其对应的调用接口和调用时间,和调用接口对应的预设调用时间间隔;若是首次发送,则直接发送用户访问请求;若不是首次发送,则获取数据表中与用户访问请求调用接口一致的上一次用户访问请求,判断用户访问请求与上一次用户访问请求的差值是否小于预设时间间隔;若大于等于,则发送用户访问请求;若小于,则通过弹窗和/或短信方式来提醒用户。本申请还涉及区块链技术,数据表存储于区块链中。本申请能减轻服务器的工作负担。

Description

重复请求的限流方法、装置、设备及存储介质
技术领域
本申请涉及信息安全技术领域,尤其涉及重复请求的限流方法、装置、设备及存储介质。
背景技术
目前,随着社会的不断发展,互联网技术越来越成熟,互联网技术的快速发展给人们生活带来越来越多的便利。人们通过互联网可以方便的查询、分享和下载各类资料、获取各类重要信息以及在线支付账单等。而当用户进行上述操作时,离不开Web服务器,用户通过客户端向Web服务器发出上述操作的请求,Web服务器对应的响应客户端的请求。面对大量的用户请求,极大的增加Web服务器的负担。在现有技术中,通过服务器端设置表记录更新时间,每次操作库的时候,比较一下库的时间跟当前时间差;以及利用redis设置多少分钟实现的key,仅通过服务器端进行设定,能做的仅是不给移动端返回数据,但任占用大量的服务器容量。因此,如何减轻服务器的负担成为了亟待解决的问题。
发明内容
本申请提供了重复请求的限流方法、装置、设备及存储介质,以解决现有技术中服务器接收大量请求,导致服务器负担过重的问题。
为解决上述问题,本申请提供了重复请求的限流方法,包括:
通过预设的拦截器拦截用户访问请求;
基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口和调用时间,和调用接口对应的预设调用时间间隔;
若是首次发送,则直接发送所述用户访问请求;
若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;
若大于等于所述预设时间间隔,则发送所述用户访问请求;
若小于所述预设时间间隔,则通过弹窗和/或短信方式来提醒用户。
进一步的,所述通过预设的拦截器拦截用户访问请求包括:
基于责任链模式和代理模式建立所述拦截器,并将所述拦截器进行部署,以拦截和分发所述用户访问请求。
进一步的,在所述通过预设的拦截器拦截用户访问请求之后,还包括:
基于UUID,对所述用户访问请求,生成对应的唯一请求码,以使服务器端便于区分并拦截。
进一步的,在所述直接发送所述用户访问请求之后,还包括:
接收服务器端返回的所述用户访问请求对应的信息以及调用接口预设的调用时间间隔;
基于所述用户访问请求及其对应的发送时间和所述调用接口预设的调用时间间隔,对所述数据表进行更新。
进一步的,在所述发送所述用户访问请求之后,还包括:
获取所述用户访问请求的发送时间;
基于所述用户访问请求及其发送时间,更新所述数据表中所述用户访问请求对应接口的信息。
进一步的,在所述发送所述用户访问请求之后,还包括:
在服务器端中,将所述用户访问请求信息还保存至信息表中;
所述信息表包括用户信息以及对应调用接口信息。
进一步的,在所述将所述用户访问请求信息还保存至信息表中之后,还包括:
基于所述信息表中的信息,判断所述调用接口次数是否小于预设数值;
若是,则获取所述小于预设数值的调用接口次数对应的用户信息和调用接口信息;
基于所述用户信息和调用接口信息,降低用户对应的内容信息的刷新频率。
为了解决上述问题,本申请还提供重复请求的限流装置,所述装置包括:
拦截模块,用于通过预设的拦截器拦截用户访问请求;
首次判断模块,用于基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口和调用时间,和调用接口对应的预设调用时间间隔;
发送模块,用于若是首次发送,则直接发送所述用户访问请求;
间隔时间判断模块,用于若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;
所述发送模块,还用于若大于等于所述预设时间间隔,则发送所述用户访问请求;
提醒模块,用于若小于所述预设时间间隔,则通过弹窗和/或短信方式来提醒用户。
为了解决上述问题,本申请还提供一种计算机设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述所述的重复请求的限流方法。
为了解决上述问题,本申请还提供一种非易失性的计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述所述的重复请求的限流方法。
根据本申请实施例提供的重复请求的限流方法、装置、设备及存储介质,与现有技术相比至少具有以下有益效果:
通过在客户端上预设拦截器来拦截用户访问请求,基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,从而对用户访问请求进行初步判断,若是,则直接发送所述用户访问请求;若不是,则获取调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,以进行二次判断,若小于所述预设时间间隔,则不发送所述用户访问请求,并通过弹窗和/或短信方式来提醒用户;若大于等于所述预设时间间隔,则发送所述用户访问请求,通过在客户端对重复请求进行限流,极大的避免了服务器利用自身资源对重复请求的处理,极大的减轻了服务器的工作负担。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图做一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的重复请求的限流方法的流程示意图;
图2为本申请一实施例提供的重复请求的限流装置的模块示意图;
图3为本申请一实施例的计算机设备的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是是相同的实施例,也不是与其它实施例相互排斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请提供一种重复请求的限流方法。参照图1所示,为本申请一实施例提供的重复请求的限流方法的流程示意图。
在本实施例中,重复请求的限流方法包括:
S1、通过预设的拦截器拦截用户访问请求;
具体的,本申请通将预设的拦截器部署在客户端,以对客户端向服务器端发送的用户访问请求进行拦截,便于后续对用户访问请求。
在本申请中,所述用户访问请求中包括有用户信息和调用接口信息即URL等。
进一步的,所述通过预设的拦截器拦截用户访问请求包括:
基于责任链模式和代理模式建立所述拦截器,并将所述拦截器进行部署,以拦截和分发所述用户访问请求。
具体的,所述责任链模式和代理模式为java常用的设计模式。
所述责任链模式在面向对象程式设计里是一种软件设计模式,它包含了一些命令对象和一系列的处理对象。每一个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。该模式还描述了往该处理链的末尾添加新的处理对象的方法。
所述代理模式为对其他对象提供一种代理以控制对这个对象的访问。代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。代理模式的思想是为了提供额外的处理或者不同的操作,在实际对象与调用者之间插入一个代理对象。
通过责任链模式和代理模式建立所述拦截器,并将所述拦截器部署至客户端,以拦截和分发所述用户访问请求,可实现对固定接口的用户访问请求进行拦截。
进一步的,在所述通过预设的拦截器拦截用户访问请求之后,还包括:
基于UUID,对所述用户访问请求,生成对应的唯一请求码,以使服务器端便于区分并拦截。
具体的,UUID为通用唯一识别码(Universally Unique Identifier)的缩写,其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来识别来做辨识信息的指定。UUID是指在一台机器上生成的数字,它保证对同一时空中的所有机器或数据都是唯一的,UUID由一下几部分组成(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同;(2)时钟序列;(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。所述时间为纳秒级时间。
其中,在本申请中,对所述用户访问请求,生成对应的唯一请求码,所述唯一请求码同一时间请求同一接口是唯一的,且时间精准。
其目的在于,在某些异常情况下,客户端在短时间针对同一接口生成多次用户访问请求,例如1毫秒生成3次相同的用户访问请求,这种情况下客户端的拦截器处理不了,就需要通过唯一请求码,来帮助服务器端进行判断,只要两次的唯一请求码不一致,就知道是两次调用,从而直接进行拦截。
基于UUID,来生成请求码,以助于服务器端再进行拦截,提高拦截效果,实现客户端与服务器端协同作用。
S2、基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口和调用时间,和调用接口对应的预设调用时间间隔;
具体的,在拦截到用户访问请求后,具体基于用户访问请求的调用接口进行查数据表操作,以判断调用该接口的用户访问请求是否为首次发送,若数据表中并无该调用接口对应的数据信息,则对应的用户访问请求为首次发送;若数据表中有该调用接口对应的数据信息,则对应的用户访问请求非首次发送。对应的数据表中存储的调用接口预设的调用时间间隔为服务器端返回的数据,且保存的是每个调用接口的URL。
S3、若是首次发送,则直接发送所述用户访问请求;
通过查数据表后,判断得到所述用户访问请求为首次发送,则直接放行,即发送所述用户访问。
S4、若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;
同样经过查数据表后,若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,即同一URL的上一个用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,由于在第一次用户访问请求发送后,就会收到与用户访问请求相对应的调用接口的预设时间间隔,所以此处利用的是服务器端的预设时间间隔。在异常情况下,当未接收到服务器端发送的预设时间间隔,在客户端会有一个默认时间间隔,来用于顶替预设时间间隔进行判断。
进一步的,在所述直接发送所述用户访问请求之后,还包括:
接收服务器端返回的所述用户访问请求对应的信息以及调用接口预设的调用时间间隔;
基于所述用户访问请求及其对应的发送时间和所述调用接口预设的调用时间间隔,对所述数据表进行更新。
具体的,在某一调用接口,首次有用户访问请求调用该接口后,服务器端将该接口的相关信息发送至客户端,例如用户访问请求对应的调用接口预设的调用时间间隔,客户端根据该用户访问请求的发送时间,以及服务器端返回的调用接口预设的调用时间间隔来对所述数据表进行更新。
通过接收服务端预先对接口设定的接收频率,并基于接收频率在客户端就对用户访问请求进行限流,以尽最大可能的减轻服务器的工作负担。
S5、若大于等于所述预设时间间隔,则发送所述用户访问请求;
S6、若小于所述预设时间间隔,则通过弹窗和/或短信方式来提醒用户。
当小于预设时间间隔时,不会发送所述用户访问请求,并通过弹窗和/或短信的方式来提醒用户,例如提醒用户“请勿频繁点击”等。
进一步的,在所述发送所述用户访问请求之后,还包括:
获取所述用户访问请求的发送时间;
基于所述用户访问请求及其发送时间,更新所述数据表中所述用户访问请求对应接口的信息。
具体的,此处是针对所述用户访问请求为非首次发送的情况,在所述用户访问请求被确认发送后,对数据表中的相应内容进行更新,例如更新用户访问请求对应调用接口的上一次用户访问请求的发送时间;当服务器端对用户访问请求对应调用接口的预设调用时间间隔变动时,客户端还会接收变动后的调用接口对应的预设调用时间间隔,并及时的在数据表中进行更新。
通过在不断更新用户访问请求的发送时间,以利于后续用户访问请求发送时进行判断。
进一步的,在所述发送所述用户访问请求之后,还包括:
在服务器端中,将所述用户访问请求信息还保存至信息表中;
所述信息表包括用户信息以及对应调用接口信息。
具体的,在客户端中发送用户访问请求至服务器端后,在服务器端对用户访问请求信息还进行保存,并保存至信息表中;所述信息表包括用户信息以及对应调用接口信息,所述调用接口信息包括调用接口参数以及调用接口的次数信息。
通过在服务器端也存储有相应的信息,服务器端可根据所述信息,对接口及其对应展示的内容作对应的调整,以提高服务器端的资源利用率。
所述信息表为存储在服务器端的,信息表相较于数据表还多存储有调用接口的次数信息;数据表存储在客户端,两者都是为了便于查询数据。
再进一步的,在所述将所述用户访问请求信息还保存至信息表中之后,还包括:
基于所述信息表中的信息,判断所述调用接口次数是否小于预设数值;
若是,则获取所述小于预设数值的调用接口次数对应的用户信息和调用接口信息;
基于所述用户信息和调用接口信息,降低用户对应的内容信息的刷新频率。
具体的,在服务器端中每隔预设时间,服务器端会调用信息表中的信息,来判断所述调用接口次数是否小于预设数值;若是,则直接获取相应的用户信息和调用接口信息,基于所述用户信息和调用接口信息,降低所述用户对应内容信息的刷新频率,所述对应内容信息为该用户下,调用接口次数小于预设数值的调用接口对应展示内容,若小于,则表明用户不常查看对应的内容信息,通过降低对应内容信息的刷新频率的方式,降低服务器的负担;在每隔预设时间对调用接口次数进行判断时,当判断得到调用接口次数大于预设数值时,恢复所述调用接口对应内容信息的刷新频率。
所述刷新频率为服务器端对,例如相关网页的内容信息,即数据每隔预定时间会进行刷新,若判断出某一用户对某一内容信息的点击次数在一段时间内小于预设数值时,则降低对应内容信息的刷新频率。所述点击次数也即相当于调用接口的次数。
通过对某些用户对应接口调用次数少的,将用户和接口,对应的展示内容信息的刷新频率降低,以提高服务器资源的利用率,减少资源的浪费。
需要强调的是,为了进一步保证数据的私密性和安全性,所述数据表的所有数据还可以存储于一区块链的节点中。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
通过在客户端上预设拦截器来拦截用户访问请求,基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,从而对用户访问请求进行初步判断,若是,则直接发送所述用户访问请求;若不是,则获取调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,以进行二次判断,若小于所述预设时间间隔,则不发送所述用户访问请求,并通过弹窗和/或短信方式来提醒用户;若大于等于所述预设时间间隔,则发送所述用户访问请求,通过在客户端对重复请求进行限流,极大的避免了服务器利用自身资源对重复请求的处理,极大的减轻了服务器的工作负担。
如图2所示,是本申请重复请求的限流装置的功能模块图。
本申请所述重复请求的限流装置100可以安装于电子设备中。根据实现的功能,所述重复请求的限流装置100可以包括拦截模块101、首次判断模块102、发送模块103、间隔时间判断模块104和提醒模块105。本申请所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
拦截模块101,用于通过预设的拦截器拦截用户访问请求;
进一步的,所述拦截模块101包括建立子模块;
所述建立子模块,用于基于责任链模式和代理模式建立所述拦截器,并将所述拦截器进行部署,以拦截和分发所述用户访问请求。
通过建立子模块建立并部署拦截器至客户端,以拦截和分发所述用户访问请求,可实现对固定接口的用户访问请求进行拦截。
进一步的,所述重复请求的限流装置100还包括请求码生成模块;
所述请求码生成模块,用于基于UUID,对所述用户访问请求,生成对应的唯一请求码,以使服务器端便于区分并拦截。
具体的,所述请求码生成模块对所述用户访问请求,生成对应的唯一请求码,所述唯一请求码同一时间请求同一接口是唯一的,且时间精准。
所述请求码生成模块,基于UUID,来生成请求码,以助于服务器端再进行拦截,提高拦截效果,实现客户端与服务器端协同作用。
首次判断模块102,用于基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口和调用时间,和调用接口对应的预设调用时间间隔;
具体的,首次判断模块102基于用户访问请求的调用接口进行查数据表操作,以判断调用该接口的用户访问请求是否为首次发送,若数据表中并无该调用接口对应的数据信息,则对应的用户访问请求为首次发送;若数据表中有该调用接口对应的数据信息,则对应的用户访问请求非首次发送。对应的数据表中存储的调用接口预设的调用时间间隔为服务器端返回的数据,且保存的是每个调用接口的URL。
发送模块103,用于若是首次发送,则直接发送所述用户访问请求;
通过查数据表后,判断得到所述用户访问请求为首次发送,则直接放行,即发送所述用户访问。
进一步的,所述重复请求的限流装置100还包括:接收模块和第一更新模块;
所述接收模块,用于接收服务器端返回的所述用户访问请求对应的信息以及调用接口预设的调用时间间隔;
所述第一更新模块,用于基于所述用户访问请求及其对应的发送时间和所述调用接口预设的调用时间间隔,对所述数据表进行更新。
通过接收模块和第一更新模块的配合,接收服务端预先对接口设定的接收频率,并基于接收频率在客户端就对用户访问请求进行限流,以尽最大可能的减轻服务器的工作负担。
间隔时间判断模块104,用于若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;
同样经过查数据表后,若不是首次发送,间隔时间判断模块104则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,即同一URL的上一个用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,由于在第一次用户访问请求发送后,就会收到与用户访问请求相对应的调用接口的预设时间间隔,所以此处利用的是服务器端的预设时间间隔。在异常情况下,当未接收到服务器端发送的预设时间间隔,在客户端会有一个默认时间间隔,来用于顶替预设时间间隔进行判断。
所述发送模块103,还用于若大于等于,则发送所述用户访问请求;
所述提醒模块105,用于若小于,则通过弹窗和/或短信方式来提醒用户。
进一步的,所述重复请求的限流装置100还包括时间获取模块和第二更新模块;
所述时间获取模块,用于获取所述用户访问请求的发送时间;
所述第二更新模块,用于基于所述用户访问请求及其发送时间,更新所述数据表中所述用户访问请求对应接口的信息。
通过时间获取模块和第二更新模块的配合,不断更新用户访问请求的发送时间,以利于后续用户访问请求发送时进行判断。
进一步的,所述重复请求的限流装置100还包括:保存模块;
所述保存模块,用于在服务器端中,将所述用户访问请求信息还保存至信息表中;
所述信息表包括用户信息以及对应调用接口信息。
具体的,在客户端中发送用户访问请求至服务器端后,所述保存模块在服务器端对用户访问请求信息还进行保存,并保存至信息表中;所述信息表包括用户信息以及对应接口的调用次数,所述调用接口信息包括调用接口参数以及调用接口的次数信息。
所述保存模块在服务器端也存储有相应的信息,服务器端可根据所述信息,对接口及其对应展示的内容作对应的调整,以提高服务器端的资源利用率。
再进一步的,所述重复请求的限流装置100还包括:数值判断模块、信息获取模块和频率降低模块;
所述数值判断模块,用于基于所述信息表中的信息,判断所述调用接口次数是否小于预设数值;
所述信息获取模块,用于若是,则获取所述小于预设数值的调用接口次数对应的用户信息和调用接口信息;
所述频率降低模块,用于基于所述用户信息和调用接口信息,降低用户对应的内容信息的刷新频率。
具体的,在服务器端中每隔预设时间,所述数值判断模块会调用信息表中的信息,来判断所述调用接口次数是否小于预设数值;若是,所述信息获取模块则直接获取相应的用户信息和调用接口信息,所述频率降低模块基于所述用户信息和调用接口信息,降低所述用户对应内容信息的刷新频率,所述对应内容信息为该用户下,调用接口次数小于预设数值的调用接口对应展示内容。
通过数值判断模块、信息获取模块和频率降低模块的配合对某些用户对应接口调用次数少的,将用户和接口,对应的展示内容信息的刷新频率降低,以提高服务器资源的利用率,减少资源的浪费。
通过采用上述装置,所述重复请求的限流装置100通过拦截模块101、首次判断模块102、发送模块103、间隔时间判断模块104和提醒模块105的配合使用,通过在客户端对重复请求进行限流,极大的避免了服务器利用自身资源对重复请求的处理,极大的减轻了服务器的工作负担。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图3,图3为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如重复请求的限流方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述重复请求的限流方法的计算机可读指令。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本实施例通过处理器执行存储在存储器的计算机可读指令时实现如上述实施例重复请求的限流方法的步骤,通过在客户端上预设拦截器来拦截用户访问请求,基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,从而对用户访问请求进行初步判断,若是,则直接发送所述用户访问请求;若不是,则获取调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,以进行二次判断,若小于所述预设时间间隔,则不发送所述用户访问请求,并通过弹窗和/或短信方式来提醒用户;若大于等于所述预设时间间隔,则发送所述用户访问请求,通过在客户端对重复请求进行限流,极大的避免了服务器利用自身资源对重复请求的处理,极大的减轻了服务器的工作负担。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的重复请求的限流方法的步骤,通过在客户端上预设拦截器来拦截用户访问请求,基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,从而对用户访问请求进行初步判断,若是,则直接发送所述用户访问请求;若不是,则获取调用接口一致的上一次用户访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于预设时间间隔,以进行二次判断,若小于所述预设时间间隔,则不发送所述用户访问请求,并通过弹窗和/或短信方式来提醒用户;若大于等于所述预设时间间隔,则发送所述用户访问请求,通过在客户端对重复请求进行限流,极大的避免了服务器利用自身资源对重复请求的处理,极大的减轻了服务器的工作负担。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (7)

1.一种重复请求的限流方法,其特征在于,所述方法包括:
通过预设的拦截器拦截用户访问请求;
基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口的URL和调用时间,和调用接口对应的预设时间间隔;
若是首次发送,则直接发送所述用户访问请求;
若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,所述上一次用户访问请求为同一URL的上一个访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;所述预设时间间隔来自服务器端,当未接收到所述服务器端的所述预设时间间隔时,将客户端中的默认时间间隔作为所述预设时间间隔;
若大于或等于所述预设时间间隔,则发送所述用户访问请求;
若小于所述预设时间间隔,则通过弹窗和/或短信方式来提醒用户;
在所述通过预设的拦截器拦截用户访问请求之后,还包括:
基于UUID,对所述用户访问请求,生成对应的唯一请求码,当所述客户端无法对所述用户访问请求进行重复请求的判断时,通过所述服务器端根据所述唯一请求码进行拦截处理;
在所述发送所述用户访问请求之后,还包括:
在服务器端中,将用户访问请求信息还保存至信息表中,所述信息表包括用户信息以及对应调用接口信息,所述调用接口信息包括调用接口参数以及调用接口次数;
基于所述信息表中的信息,判断所述调用接口次数是否小于预设数值;
若是,则获取所述小于预设数值的调用接口次数对应的用户信息和调用接口信息;
基于所述用户信息和调用接口信息,降低用户对应的内容信息的刷新频率;
若否,恢复所述调用接口对应内容信息的刷新频率。
2.根据权利要求1所述的重复请求的限流方法,其特征在于,所述通过预设的拦截器拦截用户访问请求包括:
基于责任链模式和代理模式建立所述拦截器,并将所述拦截器进行部署,以拦截和分发所述用户访问请求。
3.根据权利要求1至2中任一项所述的重复请求的限流方法,其特征在于,在所述直接发送所述用户访问请求之后,还包括:
接收服务器端返回的所述用户访问请求对应的信息以及调用接口对应的预设时间间隔;
基于所述用户访问请求及其对应的发送时间和所述调用接口对应的预设时间间隔,对所述数据表进行更新。
4.根据权利要求3所述的重复请求的限流方法,其特征在于,在所述发送所述用户访问请求之后,还包括:
获取所述用户访问请求的发送时间;
基于所述用户访问请求及其发送时间,更新所述数据表中所述用户访问请求对应接口的信息。
5.一种重复请求的限流装置,其特征在于,所述装置包括:
拦截模块,用于通过预设的拦截器拦截用户访问请求;
首次判断模块,用于基于所述用户访问请求,进行查数据表操作,以判断是否为首次发送,所述数据表存储有历史用户访问请求,及其对应的调用接口的URL和调用时间,和调用接口对应的预设时间间隔;
发送模块,用于若是首次发送,则直接发送所述用户访问请求;
间隔时间判断模块,用于若不是首次发送,则获取所述数据表中与所述用户访问请求调用接口一致的上一次用户访问请求,所述上一次用户访问请求为同一URL的上一个访问请求,判断所述用户访问请求与所述上一次用户访问请求的差值是否小于所述预设时间间隔;所述预设时间间隔来自服务器端,当未接收到所述服务器端的所述预设时间间隔时,将客户端中的默认时间间隔作为所述预设时间间隔;
所述发送模块,还用于若大于或等于所述预设时间间隔,则发送所述用户访问请求;
提醒模块,用于若小于所述预设时间间隔,则通过弹窗和/或短信方式来提醒用户;
请求码生成模块,用于基于UUID,对所述用户访问请求,生成对应的唯一请求码,当所述客户端无法对所述用户访问请求进行重复请求的判断时,通过所述服务器端根据所述唯一请求码进行拦截处理;
在所述发送所述用户访问请求之后,还包括:
在服务器端中,将用户访问请求信息还保存至信息表中,所述信息表包括用户信息以及对应调用接口信息,所述调用接口信息包括调用接口参数以及调用接口次数;
基于所述信息表中的信息,判断所述调用接口次数是否小于预设数值;
若是,则获取所述小于预设数值的调用接口次数对应的用户信息和调用接口信息;
基于所述用户信息和调用接口信息,降低用户对应的内容信息的刷新频率;
若否,恢复所述调用接口对应内容信息的刷新频率。
6.一种计算机设备,其特征在于,所述计算机设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至4中任一所述的重复请求的限流方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至4中任一所述的重复请求的限流方法。
CN202110698923.9A 2021-06-23 2021-06-23 重复请求的限流方法、装置、设备及存储介质 Active CN113438227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110698923.9A CN113438227B (zh) 2021-06-23 2021-06-23 重复请求的限流方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110698923.9A CN113438227B (zh) 2021-06-23 2021-06-23 重复请求的限流方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113438227A CN113438227A (zh) 2021-09-24
CN113438227B true CN113438227B (zh) 2024-02-27

Family

ID=77753617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110698923.9A Active CN113438227B (zh) 2021-06-23 2021-06-23 重复请求的限流方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113438227B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402518A (zh) * 2010-09-09 2012-04-04 中国移动通信有限公司 一种访问网页的方法及装置
CN103581278A (zh) * 2012-08-10 2014-02-12 同程网络科技股份有限公司 适用于无线客户端的用户行为分析方法
CN103945278A (zh) * 2013-01-21 2014-07-23 中国科学院声学研究所 一种视频内容及内容源爬取方法
WO2017101346A1 (zh) * 2015-12-15 2017-06-22 乐视控股(北京)有限公司 客户端数据更新方法、客户端和服务器
CN107122306A (zh) * 2017-05-15 2017-09-01 网易(杭州)网络有限公司 自动化测试方法及装置、存储介质、电子设备
CN109040209A (zh) * 2018-07-23 2018-12-18 深圳市牛鼎丰科技有限公司 拦截重复请求的方法、装置、计算机设备及存储介质
CN109783248A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 数据访问方法、装置、计算机设备以及存储介质
CN110311986A (zh) * 2019-07-10 2019-10-08 中国民航信息网络股份有限公司 移动端请求的处理方法和装置
CN110442466A (zh) * 2019-06-14 2019-11-12 平安科技(深圳)有限公司 防止请求重复访问方法、装置、计算机设备及存储介质
WO2020010702A1 (zh) * 2018-07-11 2020-01-16 平安科技(深圳)有限公司 日志搜索方法、系统、计算机设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402518A (zh) * 2010-09-09 2012-04-04 中国移动通信有限公司 一种访问网页的方法及装置
CN103581278A (zh) * 2012-08-10 2014-02-12 同程网络科技股份有限公司 适用于无线客户端的用户行为分析方法
CN103945278A (zh) * 2013-01-21 2014-07-23 中国科学院声学研究所 一种视频内容及内容源爬取方法
WO2017101346A1 (zh) * 2015-12-15 2017-06-22 乐视控股(北京)有限公司 客户端数据更新方法、客户端和服务器
CN107122306A (zh) * 2017-05-15 2017-09-01 网易(杭州)网络有限公司 自动化测试方法及装置、存储介质、电子设备
WO2020010702A1 (zh) * 2018-07-11 2020-01-16 平安科技(深圳)有限公司 日志搜索方法、系统、计算机设备和存储介质
CN109040209A (zh) * 2018-07-23 2018-12-18 深圳市牛鼎丰科技有限公司 拦截重复请求的方法、装置、计算机设备及存储介质
CN109783248A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 数据访问方法、装置、计算机设备以及存储介质
CN110442466A (zh) * 2019-06-14 2019-11-12 平安科技(深圳)有限公司 防止请求重复访问方法、装置、计算机设备及存储介质
CN110311986A (zh) * 2019-07-10 2019-10-08 中国民航信息网络股份有限公司 移动端请求的处理方法和装置

Also Published As

Publication number Publication date
CN113438227A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
CN108376079B (zh) 自动应用更新
US20210081524A1 (en) Systems and methods of establishing secure passwords using real-time dynamic feedback.
CN111782304B (zh) 分页加载数据逻辑控制方法、装置、计算机设备及介质
CN112468540B (zh) 基于云平台的数据分发方法、设备及介质
CN111222153B (zh) 应用程序权限管理方法、装置和存储介质
CN112818014B (zh) 区块链数据解析方法、装置和电子设备
CN112632071A (zh) 数据库主键id生成方法、装置、设备及存储介质
CN111182065A (zh) 基于mqtt协议的消息处理方法、装置和计算机设备
CN112437000A (zh) 消息队列推送方法、装置、计算机设备及存储介质
CN111680477A (zh) 导出电子表格文件的方法、装置、计算机设备及存储介质
CN107844488B (zh) 数据查询方法和装置
CN110166529A (zh) 保持登录态方法、装置、设备及存储介质
CN109977677A (zh) 漏洞信息收集方法、装置、设备及可读存储介质
CN113438227B (zh) 重复请求的限流方法、装置、设备及存储介质
CN107657155B (zh) 用于鉴定用户操作权限的方法和装置
CN115330396A (zh) 支付状态获取方法、装置、计算机设备及存储介质
CN115687826A (zh) 页面刷新方法、装置、计算机设备及存储介质
CN112699326A (zh) 一种网页页面渲染控制方法及装置
CN113360172B (zh) 应用部署方法、装置、计算机设备及存储介质
CN113326506B (zh) 一种小程序监控方法及装置
CN107666499B (zh) 用于服务器的信息存储方法和装置
CN110677465B (zh) 一种分布式锁的控制方法及装置
CN114691703A (zh) 数据更新方法、装置、电子设备及存储介质
CN113434069A (zh) 菜单配置方法、装置、设备及存储介质
CN111552551A (zh) 基于主从系统的用户管理方法、装置、计算机设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240304

Address after: 518000, Building 702, Building A, No. 4545 Songbai Road, Heshuikou Community, Matian Street, Guangming District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Yongsheng Intellectual Property Service Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240815

Address after: Building B, 3A20, Huafeng Headquarters Economic Building, No. 288 Xixiang Avenue, Labor Community, Xixiang Street, Bao'an District, Shenzhen City, Guangdong Province 518101

Patentee after: Shenzhen Houmao Information Technology Co.,Ltd.

Country or region after: China

Address before: 518000, Building 702, Building A, No. 4545 Songbai Road, Heshuikou Community, Matian Street, Guangming District, Shenzhen, Guangdong Province

Patentee before: Shenzhen Yongsheng Intellectual Property Service Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right