CN111756644A - 热点限流方法、系统、设备及存储介质 - Google Patents
热点限流方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111756644A CN111756644A CN202010619391.0A CN202010619391A CN111756644A CN 111756644 A CN111756644 A CN 111756644A CN 202010619391 A CN202010619391 A CN 202010619391A CN 111756644 A CN111756644 A CN 111756644A
- Authority
- CN
- China
- Prior art keywords
- access
- rule
- client
- dynamic rule
- detection
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种热点限流方法,通过接收客户端发送的请求消息,根据请求消息生成第一检测指令;根据第一检测指令,对客户端进行静态规则检测;当检测到客户端通过静态规则检测时,生成第二检测指令;根据第二检测指令,对请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。本方案提高了限流方案的灵活性,降低了资源的浪费,通过该限流方案的实现,有效解决缓存击穿和缓存热点问题。
Description
技术领域
本发明涉及软件监控技术领域,尤其涉及一种热点限流方法、系统、设备及存储介质。
背景技术
随着移动互联技术的发展,电商、直播、社交等对高并发的控制成为系统设计的难点和热点。业界常见的做法有多级缓存机制挡住巨大流量洪峰,但是随着缓存的压力增大,缓存击穿、缓存单点问题仍然时有发生,目前市面上有很多产品用来解决这些问题,例如分布式缓存限流,但是这些产品仍然存在缺陷,例如分布式缓存限流不能解决缓存热点问题。因此,如何有效地解决缓存单点问题和缓存击穿问题,是必须要解决的难题。
发明内容
有鉴于此,本发明实施例提供了一种热点限流方法、系统、计算机设备及计算机可读存储介质,用于解决缓存单点问题和缓存击穿问题。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种热点限流方法,包括:
接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;
根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性;
当检测到所述客户端通过静态规则检测时,生成第二检测指令;
根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;
当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
进一步地,所述根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问包括:
获取所述请求消息对应的关键字的访问数据;
根据动态规则对所述访问数据进行检测,得到动态规则检测结果。
进一步地,所述根据动态规则对所述访问数据进行检测,得到动态规则检测结果还包括:
从线程中获取动态规则;
使用解析规则对所述动态规则进行字符串切分,获取所述访问数据的预设阈值;
根据所述预设阈值对所述访问数据进行检测,得到动态规则检测结果。
进一步地,所述获取所述请求消息对应的关键字的访问数据包括:
拦截多个通过静态规则检测的所述客户端发出的请求消息;
将拦截到的请求消息放入消息队列中;
根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据。
进一步地,所述根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据包括:
根据请求信息对应的关键字生成计数指令;
根据所述计数指令获取与所述关键字对应的访问计数器,以生成访问数据。
进一步地,所述方法还包括:
将所述访问数据保存到持久化数据系统中。
进一步地,所述从线程中获取动态规则之前,所述方法还包括:
当线程中没有动态规则时,获取客户端数据;
根据客户端数据从规则数据库中获取动态规则,将所述动态规则写入线程中。
为了实现上述目的,本发明实施例还提供一种热点限流系统,包括:
第一检测指令生成模块,用于接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;
静态规则检测模块,用于根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性;
第二检测指令生成模块,用于当检测到所述客户端通过静态规则检测时,生成第二检测指令;
动态规则检测模块,用于根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;
动态规则检测结果发送模块,用于当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
为了实现上述目的,本发明实施例还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述热点限流方法的步骤。
为了实现上述目的,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的热点限流方法的步骤。
本发明实施例提供的热点限流方法、系统、计算机设备及计算机可读存储介质,应用于热点限流系统,通过接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;根据所述第一检测指令,对所述客户端进行静态规则检测;当检测到所述客户端通过静态规则检测时,生成第二检测指令;根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。本方案根据客户端数据,得到客户端数据对应的动态规则,再根据动态规则对轻轻消息进行检测,可以根据实时客户数据,生成更贴合于实际数据的动态规则,提高了限流方案的灵活性,降低了资源的浪费,通过该限流方案的实现,有效解决缓存击穿和缓存热点问题。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明实施例一之热点限流方法的步骤流程图;
图2为步骤根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问的具体流程示意图;
图3为步骤获取所述请求消息对应的关键字的访问数据的具体流程示意图;
图4为步骤根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据的具体流程示意图;
图5为步骤根据动态规则对所述访问数据进行检测,得到动态规则检测结果的具体流程示意图;
图6为步骤从线程中获取动态规则的具体流程示意图;
图7为本发明热点限流系统之实施例二的程序模块示意图;
图8为本发明计算机设备之实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之热点限流方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
一种热点限流方法,应用于流量控制系统,所述流量控制系统包括客户端和服务端,其中,服务端中存储有预置的流量控制规则,所述流量控制规则包括静态规则和动态规则,该方法具体包括以下步骤:
步骤S100:接收客户端发送的请求消息,根据所述请求消息生成第一检测指令。
具体的,请求消息由用户点击客户端界面后生成,当接收到客户端发送的请求消息时,则生成第一检测指令,第一检测指令用于指示对客户端进行静态规则检测。
步骤S200:根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性。
具体的,静态规则是指用于检测发出请求消息的客户端的固有的规则,用于检测发出请求消息的客户端的属性,例如客户端的ip,访问的系统、访问接口等,其中访问的系统指的是需要进行流量控制的系统,访问的接口是指该系统中需要进行流量控制的接口。在示例性的实施例中,访问接口指的是请求消息从控制入口进入客户端暴露的filter(过滤器)接口,基于责任链模式和filter chain(过滤器链),对请求的ip,访问的系统、访问接口进行静态规则匹配,如果静态规则如果匹配成功,则对由通过静态规则匹配的访问接口的请求消息进入动态规则检查,否则判断是否需要抛出异常,如果需要抛出异常则抛出异常,访问结束。
步骤S300:当检测到所述客户端通过静态规则检测时,生成第二检测指令。
具体的,当客户端通过静态规则检测时,则生成第二检测指令,第二检测指令用于指示对客户端发出的请求消息进行动态规则检测。
步骤S400:根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问。
具体的,对请求消息进行动态规则检查是指使用动态规则,对请求消息要访问的关键词(key)是否超出该关键字的热点阈值进行检测,得到动态规则检测结果,当动态规则检测结果为拦截访问时,则抛出异常,访问结束。其中,动态规则是指可以根据客户端数据实时调整的规则,通过动态规则的配置,可以实时调整访问流量大小。
在示例性的实施例中,如图2所示,步骤S400还可以进一步包括:
步骤S401:获取所述请求消息对应的关键字的访问数据;
具体的,访问请求消息对应的关键字是指,当用户通过客户端发起操作时,后台服务器会收到关于不同用户的关于应用的相关数据请求,而后台服务器则会针对每个请求数据确定其相关的关键词(key)。在本实施例的一些实施方式中,访问数据是指请求消息对应的关键字(key)的访问量以及每秒查询率(qps)。
在示例性的实施例中,如图3所示,步骤S401还可以进一步包括:
步骤S401A:拦截多个通过静态规则检测的所述客户端发出的请求消息。
步骤S401B:将拦截到的请求消息放入消息队列中。
具体的,通常会有多个客户端,拦截所有通过静态规则的检测的客户端发出的请求消息,并将拦截到的请求消息放入消息队列中。消息队列是一种存放请求消息的容器,当我们需要使用请求消息的时候可以取出请求消息供自己使用。
步骤S401C:根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据。
具体的,出队规则是指请求消息从消息队列中出去的规则,出队规则包括先进先出规则和先进后出规则,通过将请求消息先放入消息队列中,再从消息队列中拿出请求消息进行动态规则检测,能够通过消息队列的配置有效解耦请求消息和动态检测规则,即根据请求消息获取其对应的动态限流规则,而非所有的请求消息都是用一个动态限流规则,大大降低了服务器压力。
在示例性的实施例中,如图4所示,步骤S401C还可以进一步包括:
步骤S401C1:根据请求信息对应的关键字生成计数指令;
步骤S401C2:根据所述计数指令获取与所述关键字对应的访问计数器,以生成访问数据。
具体的,访问数据是指请求消息对应的关键字(key)的访问量以及每秒查询率(qps)。其中,访问量可以通过设置访问计数器获得。具体的,当请求消息访问其对应的关键字(key)时,判断是否存在访问计数器用来计数该关键字(key)被访问次数。当不存在访问计数器时,则创建一个新的统计计数该关键字(key)的被访问次数,当存在访问计数器时,则在原有的访问计数器上加1,得到关键字(key)的访问量,并将单位时间的访问量作为每秒查询率(qps)。以预设周期同步所述访问数据,其中,预设周期可以是秒级、分钟级的时间量,例如,预设周期为1秒、10秒或1分钟。
在示例性的实施例中,所述方法还包括:
将所述访问数据保存到持久化数据系统中。
具体的,获取访问数据后,将请求消息的访问数据存储于访问数据库中作为历史数据,供开发人员参考,以设置更加精确的动态规则,存入数据库中。
步骤S402:根据动态规则对所述访问数据进行检测,得到动态规则检测结果。
在示例性的实施例中,如图5所示,步骤S402还可以进一步包括:
步骤S402A:从线程中获取动态规则;
在示例性的实施例中,如图6所示,所述从线程中获取动态规则之前,所述方法还包括:
步骤S410:当线程中没有动态规则时,获取客户端数据;
步骤S411:根据客户端数据从规则数据库中获取动态规则,将所述动态规则写入线程中。
具体的,当判断线程中缓存有动态规则时,读取线程中的动态规则,对请求消息进行检测;当线程内不存在动态规则时,则从数据库中获取动态规则,并将获取的动态规则缓存入线程中。数据库中的规则是由开发人员预先批量设置并存储于数据库中,从数据库中获取动态规则是指定数据库中批量拉取规则,通常以5个规则为一组进行拉取。
具体的,动态规则根据客户端数据从数据库中拉取动态规则,其中,客户端数据包括客户端的业务场景和客户端标识编号和客户端时间等。客户端数据不同,从数据库中拉取的动态规则也不相同,例如,业务场景包括接口级、应用级、用户级、业务级,当业务场景为应用级时,则拉取出的动态规则对应的qps阈值就是一千万;当业务场景为用户级时,拉取出的动态规则对应的qps的阈值为百万量级;当业务场景为级时,根据热点程度设置不一样,首页的量级应该在30w左右,接口量级就要控制在10w以内。
此外,根据客户端时间的不同,拉取的动态规则也不相同。例如,使用高峰期和低谷期拉出的动态规则对应的阈值各不相同,当时间在使用高峰期时,阈值较高,当时间在使用低峰期时,阈值较低。
步骤S402B:使用解析规则对所述动态规则进行字符串切分,获取所述访问数据的预设阈值;
具体的,动态规则为一句完整的程序语言,例如ip:urlA:appId:methodId:1:10000,代表对urlA或ip上的appId里面的mehtodId的访问,在1s内的次数限制在10000。因此,需要对规则进行字符串切分,快速得到动态规则中相应的阈值。
步骤S402C:根据所述预设阈值对所述访问数据进行检测,得到动态规则检测结果。
具体的,解析动态规则后,得到动态规则中描述业务、应用、方法、时间、次数等各个维度的数据,并根据解析出的结果从访问数据库中获取对应的访问数据,对访问数据是否超过阈值进行判断,当访问数据超过阈值时,则触发了该规则,动态规则检测结果为拦截访问,当访问数据为超过阈值,则不触发改规则,动态规则检测结果为允许继续访问。
在一种可能的实施方式中,可以对访问数据逐一进行检测,即解析一个规则后,从访问数据库中读取规则对应的访问数据,检测通过后,继续解析下一条规则,并从访问数据库中读取下一条规则对应的访问数据进行检测。
在另一种可能的实施方式中,可以对访问数据进行批量检测,即将线程中存储的所有规则解析完成后,再从访问数据库中批量获取访问数据。这种方式能够有效节省网络资源。
步骤S500:当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
在另外的实施例中,本方案还提供一种访问控制限流体系。
具体的,所述访问控制限流体系是包括Goalkeeper限流系统、本方案提供的热点限流系统和业务系统的限流体系。其中,Goalkeeper限流系统用于保证访问量平滑无毛刺,热点限流系统用于保证访问量控制和某一时间段内限流,业务系统还包括基于数据乐观锁或者缓存的精确限流模块。
本发明实施例通过接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;根据所述第一检测指令,对所述客户端进行静态规则检测;当检测到所述客户端通过静态规则检测时,生成第二检测指令;根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。可以根据实时客户数据,生成更贴合于实际数据的动态规则,提高了限流方案的灵活性,降低了资源的浪费,通过该限流方案的实现,有效解决缓存击穿和缓存热点问题。
实施例二
请继续参阅图7,示出了本发明热点限流系统的程序模块示意图。在本实施例中,热点限流系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述热点限流方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述热点限流系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
第一检测指令生成模块200,用于接收客户端发送的请求消息,根据所述请求消息生成第一检测指令。
静态规则检测模块202:用于根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性。
第二检测指令生成模块204,用于当检测到所述客户端通过静态规则检测时,生成第二检测指令;
动态规则检测模块206,用于根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;
进一步地,动态规则检测模块206还用于:
获取所述请求消息对应的关键字的访问数据;
根据动态规则对所述访问数据进行检测,得到动态规则检测结果。
进一步地,动态规则检测模块206还用于:
拦截多个通过静态规则检测的所述客户端发出的请求消息;
将拦截到的请求消息放入消息队列中;
根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据。
进一步地,动态规则检测模块206还用于:
根据请求信息对应的关键字生成计数指令;
根据所述计数指令获取与所述关键字对应的访问计数器,以生成访问数据。
进一步地,动态规则检测模块206还用于:
从线程中获取动态规则;
使用解析规则对所述动态规则进行字符串切分,获取所述访问数据的预设阈值;
根据所述预设阈值对所述访问数据进行检测,得到动态规则检测结果。
进一步地,动态规则检测模块206还用于:
当线程中没有动态规则时,获取客户端数据;
根据客户端数据从规则数据库中获取动态规则,将所述动态规则写入线程中。
动态规则检测结果发送模块208,用于当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
实施例三
参阅图8,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及热点限流系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如上述实施例所述的热点限流系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行热点限流系统20,以实现上述实施例的热点限流方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述热点限流系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图7示出了所述实现热点限流系统20实施例二的程序模块示意图,该实施例中,所述基于热点限流系统20可以被划分为第一检测指令生成模块200、静态规则检测模块202、第二检测指令生成模块204、动态规则检测模块206和动态规则检测结果发送模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述热点限流系统20在所述计算机设备2中的执行过程。所述程序模块第一检测指令生成模块200-动态规则检测结果发送模块208的具体功能在上述实施例中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储热点限流系统20,被处理器执行时实现上述实施例所述的热点限流方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种热点限流方法,其特征在于,包括:
接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;
根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性;
当检测到所述客户端通过静态规则检测时,生成第二检测指令;
根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;
当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
2.根据权利要求1所述的热点限流方法,其特征在于,所述根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问包括:
获取所述请求消息对应的关键字的访问数据;
根据动态规则对所述访问数据进行检测,得到动态规则检测结果。
3.根据权利要求2所述的热点限流方法,其特征在于,所述根据动态规则对所述访问数据进行检测,得到动态规则检测结果还包括:
从线程中获取动态规则;
使用解析规则对所述动态规则进行字符串切分,获取所述访问数据的预设阈值;
根据所述预设阈值对所述访问数据进行检测,得到动态规则检测结果。
4.根据权利要求2所述的热点限流方法,其特征在于,所述获取所述请求消息对应的关键字的访问数据包括:
拦截多个通过静态规则检测的所述客户端发出的请求消息;
将拦截到的请求消息放入消息队列中;
根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据。
5.根据权利要求4所述的热点限流方法,其特征在于,所述根据出队规则依次从所述消息队列放出请求消息,以获取所述请求消息对应的关键字的访问数据包括:
根据请求信息对应的关键字生成计数指令;
根据所述计数指令获取与所述关键字对应的访问计数器,以生成访问数据。
6.根据权利要求5所述的热点限流方法,其特征在于,所述方法还包括:
将所述访问数据保存到持久化数据系统中。
7.根据权利要求3所述的热点限流方法,其特征在于,所述从线程中获取动态规则之前,所述方法还包括:
当线程中没有动态规则时,获取客户端数据;
根据客户端数据从规则数据库中获取动态规则,将所述动态规则写入线程中。
8.一种热点限流系统,其特征在于,包括:
第一检测指令生成模块,用于接收客户端发送的请求消息,根据所述请求消息生成第一检测指令;
静态规则检测模块,用于根据所述第一检测指令,对所述客户端进行静态规则检测,所述静态规则用于检测所述客户端的属性;
第二检测指令生成模块,用于当检测到所述客户端通过静态规则检测时,生成第二检测指令;
动态规则检测模块,用于根据所述第二检测指令,对所述请求消息进行动态规则检测,得到动态规则检测结果,所述动态规则检测结果包括拦截访问和允许继续访问;
动态规则检测结果发送模块,用于当所述动态规则检验结果为拦截访问时,则发送拦截消息至所述客户端;当所述动态规则检验结果为允许继续访问时,则生成与所述请求消息对应的访问结果,并将所述访问结果发送至所述客户端。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的热点限流方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至7中任一项所述的热点限流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010619391.0A CN111756644B (zh) | 2020-06-30 | 2020-06-30 | 热点限流方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010619391.0A CN111756644B (zh) | 2020-06-30 | 2020-06-30 | 热点限流方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111756644A true CN111756644A (zh) | 2020-10-09 |
CN111756644B CN111756644B (zh) | 2023-04-07 |
Family
ID=72680170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010619391.0A Active CN111756644B (zh) | 2020-06-30 | 2020-06-30 | 热点限流方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756644B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112417455A (zh) * | 2020-11-05 | 2021-02-26 | 北京八分量信息科技有限公司 | 一种基于可信计算的异步存储数据访问方法及使用方法 |
CN113011165A (zh) * | 2021-03-19 | 2021-06-22 | 支付宝(杭州)信息技术有限公司 | 一种识别被封锁关键词的方法、装置、设备及介质 |
CN113225338A (zh) * | 2021-05-07 | 2021-08-06 | 京东数科海益信息科技有限公司 | 热点访问请求的处理方法、服务器、终端以及程序产品 |
CN113489726A (zh) * | 2021-07-06 | 2021-10-08 | 中国联合网络通信集团有限公司 | 流量限制方法及设备 |
CN114500077A (zh) * | 2022-02-14 | 2022-05-13 | 科来网络技术股份有限公司 | 访问行为监控方法、装置、服务器及可读存储介质 |
CN115269648A (zh) * | 2022-07-07 | 2022-11-01 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
CN113011165B (zh) * | 2021-03-19 | 2024-06-07 | 支付宝(中国)网络技术有限公司 | 一种识别被封锁关键词的方法、装置、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN108471385A (zh) * | 2017-02-23 | 2018-08-31 | 苏宁云商集团股份有限公司 | 一种针对分布式系统的流量控制方法及装置 |
CN109246064A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 安全访问控制、网络访问规则的生成方法、装置及设备 |
CN110290070A (zh) * | 2019-05-15 | 2019-09-27 | 北京三快在线科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN110311926A (zh) * | 2019-02-02 | 2019-10-08 | 奇安信科技集团股份有限公司 | 一种应用访问控制方法、系统和介质 |
CN110716794A (zh) * | 2019-10-14 | 2020-01-21 | 网银在线(北京)科技有限公司 | 信息处理方法、装置、系统和可读存储介质 |
CN111030936A (zh) * | 2019-11-18 | 2020-04-17 | 腾讯云计算(北京)有限责任公司 | 网络访问的限流控制方法、装置及计算机可读存储介质 |
-
2020
- 2020-06-30 CN CN202010619391.0A patent/CN111756644B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375472A (zh) * | 2016-09-29 | 2017-02-01 | 北京三快在线科技有限公司 | 访问请求处理方法、装置和服务器 |
CN108471385A (zh) * | 2017-02-23 | 2018-08-31 | 苏宁云商集团股份有限公司 | 一种针对分布式系统的流量控制方法及装置 |
CN109246064A (zh) * | 2017-07-11 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 安全访问控制、网络访问规则的生成方法、装置及设备 |
CN110311926A (zh) * | 2019-02-02 | 2019-10-08 | 奇安信科技集团股份有限公司 | 一种应用访问控制方法、系统和介质 |
CN110290070A (zh) * | 2019-05-15 | 2019-09-27 | 北京三快在线科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
CN110716794A (zh) * | 2019-10-14 | 2020-01-21 | 网银在线(北京)科技有限公司 | 信息处理方法、装置、系统和可读存储介质 |
CN111030936A (zh) * | 2019-11-18 | 2020-04-17 | 腾讯云计算(北京)有限责任公司 | 网络访问的限流控制方法、装置及计算机可读存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112417455A (zh) * | 2020-11-05 | 2021-02-26 | 北京八分量信息科技有限公司 | 一种基于可信计算的异步存储数据访问方法及使用方法 |
CN113011165A (zh) * | 2021-03-19 | 2021-06-22 | 支付宝(杭州)信息技术有限公司 | 一种识别被封锁关键词的方法、装置、设备及介质 |
CN113011165B (zh) * | 2021-03-19 | 2024-06-07 | 支付宝(中国)网络技术有限公司 | 一种识别被封锁关键词的方法、装置、设备及介质 |
CN113225338A (zh) * | 2021-05-07 | 2021-08-06 | 京东数科海益信息科技有限公司 | 热点访问请求的处理方法、服务器、终端以及程序产品 |
CN113489726A (zh) * | 2021-07-06 | 2021-10-08 | 中国联合网络通信集团有限公司 | 流量限制方法及设备 |
CN114500077A (zh) * | 2022-02-14 | 2022-05-13 | 科来网络技术股份有限公司 | 访问行为监控方法、装置、服务器及可读存储介质 |
CN115269648A (zh) * | 2022-07-07 | 2022-11-01 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
CN115269648B (zh) * | 2022-07-07 | 2023-08-18 | 浙江恒生长运网络科技有限公司 | 一种批量抽取班次信息的班次查询管控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111756644B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756644B (zh) | 热点限流方法、系统、设备及存储介质 | |
CN108683604B (zh) | 并发访问控制方法、终端设备及介质 | |
CN105282047B (zh) | 访问请求处理方法及装置 | |
US9313604B1 (en) | Network service request throttling system | |
CN112491930B (zh) | 系统风险动态监控方法、系统、计算机设备及存储介质 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
CN111817984B (zh) | 消息发送方法、装置、设备及存储介质 | |
CN111585785B (zh) | 告警信息的屏蔽方法、装置、计算机设备及存储介质 | |
CN111371772A (zh) | 基于redis的智能网关限流方法、系统和计算机设备 | |
CN114866965A (zh) | 基于MaaP的5G消息通讯方法、系统、电子设备和存储介质 | |
CN110708212A (zh) | 分布式系统中调用链路的追踪方法及装置 | |
CN111369354A (zh) | 面向区块链应用的数据监控方法、装置及存储介质 | |
CN105184559B (zh) | 一种支付系统及方法 | |
CN116961918A (zh) | 令牌获取方法和装置 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN115328734A (zh) | 跨服务的日志处理方法、装置及服务器 | |
CN114924937A (zh) | 批量任务处理方法、装置、电子设备及计算机可读介质 | |
CN114124757A (zh) | 参数调整方法、装置、相关设备及存储介质 | |
CN113726673A (zh) | 服务网关流控方法、装置、设备及存储介质 | |
CN114095936A (zh) | 短信验证码请求方法、攻击防御方法、装置、介质及设备 | |
CN109063206B (zh) | 文章监控方法及装置 | |
CN110647757A (zh) | 基于智能合约的数据处理方法及相关装置 | |
CN114650252B (zh) | 基于企业服务总线的路由方法、装置及计算机设备 | |
CN111865725B (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 |