CN113726676A - 基于Redis的API接口限流方法、装置、计算机设备及存储介质 - Google Patents
基于Redis的API接口限流方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113726676A CN113726676A CN202111005282.0A CN202111005282A CN113726676A CN 113726676 A CN113726676 A CN 113726676A CN 202111005282 A CN202111005282 A CN 202111005282A CN 113726676 A CN113726676 A CN 113726676A
- Authority
- CN
- China
- Prior art keywords
- api interface
- access
- interface
- redis
- api
- 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
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及人工智能技术,提供一种基于Redis的API接口限流方法,包括:基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;基于所述目标API接口集合,利用Redis进行目标API接口限流操作。该方法在处理访问量较小的接口限流问题时,成本低,且对特定类型的API接口可以进行个性化处理。
Description
技术领域
本发明涉及人工智能领域,尤其涉及一种基于Redis的API接口限流方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,计算机技术在医疗方面的应用也越来越广泛。例如,当客户通过API接口访问某个医疗服务时,若访问请求在监控周期内的访问量较大时,服务器的压力将大大增加,可能导致整个系统瘫痪,常常采用限流的方式来对服务器进行保护。但传统的限流方式一般对大型的服务接口限流,采用分布式限流,在对某个行业或者某个单位服务接口限流时,存在成本较高,且对特定API接口不具有针对性的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种基于Redis的API接口限流方法、装置、计算机设备及存储介质,以解决现有技术中限流成本高,对API接口不能进行针对性限流的问题。
本申请实施例的第一方面提供了一种基于Redis的API接口限流方法方法,包括:
基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;所述API接口的类型包括:低访问量的API接口,高访问量的API接口和核心API接口;
所述基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值,包括:
当所述API接口的类型为所述高访问量的API接口和所述核心API接口时,通过管理界面获取相应的周期访问阈值;
当所述API接口的类型为所述低访问量的API接口时,根据所述历史访问数据配置相应的周期访问阈值。
按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;
基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
上述方案中所述的基于Redis的API接口限流方法,其特征在于,所述历史访问数据为在每个所述监控周期内API接口的访问次数。
上述方案中所述的基于Redis的API接口限流方法,其特征在于,所述管理界面为可以实现与管理员进行交互的管理。
上述方案中所述的基于Redis的API接口限流方法,其特征在于,所述按照预设的监控周期,从所述API接口集群中确定出目标API接口集合包括:
根据人工智能AI算法,自动监测所述API接口的所述监控周期的访问次数,根据所述周期访问阈值和所述访问次数获取目标API接口,根据所述目标API接口获得所述目标API接口集合。
上述方案中所述的基于Redis的API接口限流方法,其特征在于,所述基于所述目标API接口集合,利用Redis进行目标API接口限流操作包括:
将所述目标API接口集合存入到Redis数据库,通过所述Redis数据库和Redis的lua脚本对所述目标API接口进行限流。
上述方案中所述的基于Redis的API接口限流方法,其特征在于,所述Redis数据库还包括所述监控周期和所述周期访问阈值。
本申请实施例的第三方面提供了一种基于Redis的API接口限流方法装置,包括:
配置单元:基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;
确定单元:按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;
限流单元:基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
本申请实施例的第三方面提供了一种计算机设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,该计算机指令用于使该计算机执行基于Redis的API接口限流方法的各步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行基于Redis的API接口限流方法的各步骤。
实施本申请实施例提供的一种基于Redis的API接口限流方法具有以下有益效果:
本发明公开了一种基于Redis的API接口限流方法,包括:基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;基于所述目标API接口集合,利用Redis进行目标API接口限流操作。该方法在处理访问量较小的接口限流问题时,成本低,且对特定类型的API接口可以进行个性化处理。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例中一种基于Redis的API接口限流方法实现流程图;
图2是本申请实施例提供的一种基于Redis的API接口限流方法装置的结构框图;
图3是本申请实施例提供的一种服务器端设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请涉及的基于Redis的API接口限流方法,应用于数据处理技术领域,可以由服务器端执行。
本申请涉及的基于Redis的API接口限流方法,应用于理医疗服务领域。当客户通过API接口访问某个医疗服务时,若访问请求在单位时间内的访问量较大时,服务器的压力将大大增加,可能导致整个系统瘫痪,常常采用限流的方式来对服务器进行保护。
请参阅图1,图1示出了本申请实施例提供的一种基于Redis的API接口限流方法的实现流程图。
如图1所示,一种基于Redis的API接口限流方法,包括:
S11:基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值。
在步骤S11中,被规划服务指的是服务器端为客户端提供的功能性服务,例如,用户可以通过客户端向服务器端获取各类资讯或者账户相关数据的服务。在实现通过客户端向服务器端进行访问时,需要服务器端为客户端提供相应的访问接口,也即与被规划服务的API接口集群。在API接口集群中,API接口是为客户端开放且为被规划服务提供数据交互基础的接口。
本实施例中,可以基于人工智能技术对相关的数据进行获取和处理,通过人工智能技术中的大数据处理,对被规划服务的API接口集群。在被规划服务的API接口集群中,API接口要承载用户终端的访问请求,用户终端通过API接口集群与服务器系统交互,用户终端向服务器系统请求提供特定的服务,服务器系统把服务结果发送给用户终端。但API接口集群中,由于用户终端的访问请求不同,API接口集群中每个API接口对应的服务模块不同,其所对应的访问请求也不同,用户终端的需求不同,则API接口在周期内的访问量也不相同,且不同类型的API接口在周期内的承载能力也不同,所以需要对每个API接口配置相应的周期访问阈值,以防止API接口因访问量而导致系统瘫痪。
在本实施例中,以医疗服务API接口为例,在医疗服务中,用户可以利用智慧医疗服务访问API接口访问健康数据分析服务,健康档案管理服务,医患咨询服务等,当用户终端需要访问健康数据分析服务,根据服务访问API接口与健康数据分析服务模块的交互,用户终端通过服务访问API接口访问健康数据分析服务。根据用户的需求不同,用户想从智慧医疗服务访问API接口中获取的信息也不同,连接这些信息中的API接口需要根据用户的实际需求被配置不同的周期访问阈值。在一个周期内服务模块访问量较大时,则该服务模块的API接口需要配置交的周期访问阈值。例如,当用户对健康数据分析服务模块的访问量较大时,参考健康数据分析服务模块历史访问数据对健康数据分析服务模块API接口配置较大的周期访问阈值。其中周期访问阈值可以是历史访问数据的平均值,可以是历史访问数据中的最大值,或者是历史访问数据中的众数等,本实施例中使用历史访问数据中的最大值作为API接口的周期访问阈值。
作为本申请一实施例,API接口的类型包括:低访问量的API接口,高访问量的API接口和核心API接口。步骤S11具体包括:
当所述API接口的类型为所述高访问量的API接口和所述核心API接口时,通过管理界面获取相应的周期访问阈值;当所述API接口的类型为所述低访问量的API接口时,根据所述历史访问数据配置相应的周期访问阈值。
所述历史访问数据为在每个所述监控周期内API接口的访问次数;所述管理界面为可以实现与管理员进行交互的管理。
在本实施例中,以智慧医疗服务为例,把API接口的类型划分为低访问量的API接口,高访问量的API接口和核心API接口。例如,在智慧医疗服务平台中,包括智能客户终端和智慧医疗云服务端,智慧客户终端又包括患者服务空间,医生服务空间和管理员空间等子模块,智慧医疗云服务端又包括健康数据分析服务,健康档案管理服务,医患咨询服务等子模块。在智慧医疗服务中,智能客户终端的API接口与智慧医疗云服务端的API接口的承载量要同时可以保证对应的各个子模块的访问量之和,所以在智慧医疗服务平台中智能客户终端的API接口与智慧医疗云服务端的API接口在保证整个系统的正常访问中占有重要位置。可以把智能客户终端的API接口与智慧医疗云服务端的API接口作为核心接口。对于各个子模块对应的API接口,根据历史访问量把子模块对应的API接口分为高访问量的API接口和低访问量的AP接口,例如,当API接口单位时间内的访问量超过某个数值时,可以把API接口作为高访问量接口。当子模块对应的API接口在单位时间内的访问量超出10000次,则把API接口作为高访问量API接口,当子模块对应的API接口在单位时间内的访问量为低于10000次,则把API接口作为低访问量API接口。在配置周期访问阈值时,高访问量API接口和核心API接口可以通过管理界面自定义配置周期访问阈值,配置周期访问阈值时可以参考API接口的历史访问量,也可以根据API接口的实际访问量更改监控周期和周期访问阈值。管理界面包括API名称,前端定义,后端定义,返回信息,监控周期和周期访问阈值等,在管理界面自定义配置根据不同的API接口,设置不同的监控周期和自定义不同的周期访问阈值,使API接口在不同的情况下都可以正常访问。低访问量的API接口周期访问阈值配置时,根据AI算法,获取每个API接口周期内的历史访问数据,依据每个API接口周期内的历史访问次数的最大值,通过服务器系统配置每个低访问量的API接口的访问阈值,可以实现对API接口的自动化限流。自定义配置周期访问阈值和服务器系统自动配置周期访问阈值相结合,可以对不同的API接口针对性的配置,在限流的过程中,使API接口可以更好的保证服务的可用性和系统的正常运转。
S12:按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口。
在步骤S12中,监控周期为API接口缓冲时间,当API接口的的访问量超出该API接口的周期访问阈值,不能继续承载用户终端的访问量,但根据用户终端的需求,API接口不能一直拒绝用户终端的访问,所以需要一个时间对API接口进行缓冲,在缓冲时间结束后,API接口再次接受用户终端的访问。监控周期内被访问量为从一个周期开始计算该API接口的访问量,直到该周期结束时的总访问量。确定超出周期访问阈值的API接口,作为目标API接口,目标API接口在监控周期内将不再有访问权限,以防止目标API接口访问量较大,超出系统的承载范围时,使整个系统瘫痪。
本实施例中,以智慧医疗服务为例,对于高访问量的API接口和核心API接口在管理界面配置监控周期,预设的监控周期为10秒,对于低访问量的API接口在服务器系统内配置监控周期,预设的监控周期为100秒。例如,智慧医疗云服务端的API接口作为核心API接口,周期访问阈值被配置为10000次,当智慧医疗云服务端的API接口在10秒内的访问量超出10000次,则智慧医疗云服务端的API接口被认为是目标API接口,并通过服务器端把该目标API接口发送到管理界面,在管理界面显示该目标API接口。医患咨询服务API接口作为低访问量的API接口时,周期访问阈值被配置为1000次,当医患咨询服务API接口在100秒内的访问量超出1000次,则医患咨询服务API接口被认为是目标API接口,依次获取所有的目标API接口,存入目标API接口集合中。
作为本申请一实施例,步骤S12具体包括:
根据人工智能AI算法,自动监测所述API接口的所述监控周期的访问次数,根据所述周期访问阈值和所述访问次数获取目标API接口,根据所述目标API接口获得所述目标API接口集合。
本实施例中,可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。使用人工智能AI算法自动监测每个API接口的访问量,所使用的AI算法为计算器算法,计数器算法的思路是在一个周期内累计计算API接口的访问次数,在用户终端向服务器端发送服务请求时,在该过程中API接口的访问量增加一次。例如当用户终端需要在医疗云服务资源子系统中访问个人健康档案管理信息时,个人健康档案管理中有需要查询的信息,也有需要上传的信息,在个人健康档案管理中可以查询健康数据表和健康数据分析,需要上传的信息包括电子病历管理,健康档案管理信息等,在计算个人健康档案管理API接口访问量时,用户在查询健康数据分析的时候和上传电子病历管理信息的时候,都需要经过个人健康档案管理API接口进行查询和上传,所以不仅在查询信息的时候需要机损访问量,在上传信息的时候也需要计算访问量。在监控周期内,API接口的访问量达到周期访问阈值时,记录目标API接口,在监控周期的剩余时间里,目标API接口将不再具有访问权限,在下一个监控周期开始的时候,目标API接口重新被赋予访问权限。例如,当用户通过人健康档案管理API接口需要获取健康数据分析,健康数据分析存储在个人档案管理数据库中,用户需要通过个人档案管理数据库接口获取相应文档,但在查询健康数据分析的报告时,在一个周期内,个人健康档案管理API接口的访问总量超出该API接口的周期访问阈值,则把个人健康档案管理API接口作为目标API接口。
S13:基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
在步骤S13中,通过对目标API接口设置访问权限以达到限流的目的。使用Redis进行限流,是对服务器端接口请求进行限流,限制的是周期内请求的数量,目的是通过有损来换取高可用。Redis是一个可以支持不同场景下的数据存提供多种键值数据类型的开源高性能操作系统,redis操作系统通过跳跃表,链表和字典来缓存数据结构。跳跃表是通过在每个节点维持多个指向其他节点的指针,从而达到快速访问的目的;链表,提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点灵活地调整链表的长度。链表内置在许多高级的编程语言中,因为Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis就会使用链表作为列表键的底层实现;字典是一种管保护键的抽象数据结构,C语言没有内置这种数据结构,因此Redis构建了自己的字典实现。当用户访问在监控和周期内超出阈值的API接口时,通过redis操作系统限制用户的访问权限,在监控周期内用户不具有访问权限,API接口拒绝用户的访问请求,并生成拒绝访问请求的信息,发送到用户端。
本实施例中,根据目标API接口,利用redis操作系统对这些目标API接口进行限流。当用户需要查询健康数据分析时,需要对健康数据分析API接口发送访问请求的信息,通过人工智能算法监控健康数据分析API接口在一个周期内的访问量,当redis操作系统调用健康数据分析API接口在一个周期内的访问量时,超过了周期访问阈值,则对于用户的访问请求不予通过,并返回给用户终端不予通过的信息。在本实施例中,智能客户终端API接口和智慧医疗云服务端API接口被分为核心API接口,健康档案AP接口被分为高访问量API接口,当核心API接口和高访问量API接口成为目标API接口后,在管理界面显示目标API接口,返回给用户的信息可以通过管理界面进行设置。若在紧急情况下,智能客户终端API接口和智慧医疗云服务端API接口成为目标AP接口,为了保证整个智慧医疗系统的正常运行,对于目标API接口的监控周期和周期访问阈值也可以通过管理界面进行修改,或者删除对该目标API接口的限制。当目标API接口为低访问量的API接口,进行自动化限流,返回系统默认的拒绝访问信息,且不能随意更改低访问量目标API接口的监控周期和周期访问阈值,当低访问量API接口被限制访问的时候,需要等到下一周期开始API接口才具有访问权限。
作为本申请一实施例,步骤S13具体包括:
将所述目标API接口集合存入到Redis数据库,通过所述Redis数据库和Redis的lua脚本对所述目标API接口进行限流。
本实施例中,将所述目标API接口集合存入到Redis数据库,所述Redis数据库还包括所述监控周期和所述周期访问阈值。通过所述Redis数据库和Redis的lua脚本对所述目标API接口进行限流。lua脚本嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。可以嵌入到其他多种宿主语言(通常是,或)之中实现各个独立功能的胶合从而形成完整功能同时非常方便的实现应用功能的扩展。lua体积小、启动速度快,且由标准编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行,具有平台无关性的特点,所以可以作为嵌入脚本的最佳选择。
Redis操作系统调用Redis数据库,获得目标API接口。在限流时,采用分布式锁进行限流。服务端需要向客户端提供开放的API接口,但开放的API接口无法控制调用方的行为,因此当接口请求的流量超出了服务的承载能力,那么可能会导致服务响应速度降低,甚至会导致服务器宕机。因此为了保证该平台服务的稳定性,服务端就必须做好限流处理。在微服务应用中,通常会部署多个实例来提高系统的性能和可用性,因此在微服务应用中需要实现分布式限流。分布式锁,是控制分布式系统之间同步访问共享资源的一种方式,在分布式系统中,常常需要协调他们的动作。在使用Redis时,为了克服原子性问题,使用了lua脚本,使Redis操作在一个脚本里执行。基于Redis的分布式锁使用一个键值对(key,value)表示,其中key表示目标API接口的名称,在一般情况下,key可以存在,也可以不存在,当存在时,说明需要对API接口进行限制访问量;当key不存在说明API接口不需要限制访问量。在本实施例中,因为Redis操作系统调用Redis数据库中的API接口,在Redis数据库中的API接口是在周期内访问量超出周期访问阈值的API接口,所以key存在。当需要对其他API接口监控时,则可以使用Redis的set命令添加该key。Value值为周期内每个API接口的访问次数,初始化为1,访问次数增加一次,则使用incr命令使value值加1。使用expire命令设置监控周期,该监控周期与Redis数据库中的API接口监控周期相等。
例如,以智慧医疗服务为例,当需要查询健康数据分析模块时,健康数据分析模块API接口被设置为低访问量的API接口,key为健康数据分析API接口,Value值初始化为1,监控周期被设置为100秒,若在一个监控周期内的访问量超出周期访问阈值,把该API接口的参数信息存入至Redis数据库中,redis数据库中包含AP接口的名称,监控周期和周爱琴访问阈值,当用户再次访问健康数据分析模块API接口时,Value值将在周期访问阈值的基础上加1,Redis操作系统识别该API接口,将在周期内禁止访问该API接口,当服务器端收到用户访问该API接口的信息时,将发送返回信息给用户端,在周期内,用户不具有访问权限。在redis数据库中的API接口的参数信息,根据每个API接口的访问量不同,redis数据库中的AP接口信息也在不断更新变化,以保证在不同的监控周期中可以对API接口进行限流,也可以保证对AP接口释放访问权限。
当API接口为高访问量API接口或核心API接口时,因监控周期和周期访问阈值是在管理界面手动配置的,在服务器端点的管理界面上管理员可以动态实时监控API接口的访问状态。当API接口的访问量达到周期访问阈值时,在紧急情况下,可以手动取消禁止访问,让用户可以及时获得相应信息。可以具有针对性的管理相关的API接口,以保证整体系统可行性。周期内的访问量将增加和单位时间的并发量将增加,则管理人员可以手动取消禁止访问。或者在配置监控周期和周期访问阈值时,可以减小监控周期和扩大周期访问阈值。
本实施例中,当核心API接口和高访问量的API接口较多是,自定义设置时为每个API接口配置监控周期和周期访问阈值时,可能或导致效率较低,所以本申请中对核心API接口和高访问量的API接口进行划分等级,当通过Redis操作系统监控API接口的访问量时,管理界面显示每一个API接口时,将不利于管理员监控,把API接口划分为不同的等级,减少了管理界面的参数配置,使管理员可以对需要监控的API接口进行更的管理。本实施例中,将核心API接口划分为第一等级,高访问量的API接口根据配置的周期访问阈值依次划分为不同的等级,根据不同的等级配置不同的监控周期和周期访问阈值,等级越高,配置的监控周期越短,周期访问阈值越大,等级越低,配置的监控周期越长,周期访问阈值越大。通过Redis操作系统的的自动监控,把监控结果发送到管理界面,在管理界面实时监控不同等级的API接口的访问量,当情况紧急时,可以在监控界面手动更改API接口参数,以保证整个访问系统的正常使用。
本申请通过对API接口进行个性化限流,基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;基于所述目标API接口集合,利用Redis进行目标API接口限流操作。该限流方法考虑了API接口的类型,对API接口进行手动配置和自动配置相结合,手动配置可以针对性的监控API接口,自动配置使限流操作可以自动化完成,提高了监控效率。
请参阅图2,图2是本申请实施例提供的一种基于Redis的API接口限流方法的装置结构框图。本实施例中该服务器端包括的3个单元用于执行图1对应的实施例中的各步骤,具体请参阅图1以及图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图2,基于Redis的API接口限流方法装置20包括:配置单元21,确定单元22,限流单元23,其中:
配置单元21,基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;
确定单元22,按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;
限流单元23,基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
作为本申请一实施例,基于Redis的API接口限流方法的装置20还包括:
第一执行单元24,用于当所述API接口的类型为所述高访问量的API接口和所述核心API接口时,通过管理界面获取相应的周期访问阈值。
第二执行单元25,用于当所述API接口的类型为所述低访问量的API接口时,根据所述历史访问数据配置相应的周期访问阈值。
作为本申请一实施例,配置单元21具体用于在API接口集群中,由于用户终端的访问请求不同,API接口集群中每个接口对应的访问请求不同,则API接口在周期内的访问量也不相同,且不同类型的API接口在周期内的承载能力也不同,所以需要对每个API接口配置相应的周期访问阈值,
作为本申请一实施例,基于Redis的API接口限流方法的装置20还包括:
第三执行单元26,根据人工智能AI算法,自动监测所述API接口的所述监控周期的访问次数,根据所述周期访问阈值和所述访问次数获取目标API接口,根据所述目标API接口获得所述目标API接口集合。
第四执行单元27,将所述目标API接口集合存入到Redis数据库,通过所述Redis数据库和Redis的lua脚本对所述目标API接口进行限流。
作为本申请一实施例,限流单元23具体用于当用户需要查询某个服务模块时,对于高访问量的API接口和核心API接口在管理界面显示超出访问阈值的API接口,当用户访问在监控和周期内超出阈值的API接口时,在监控周期内用户不具有访问权限,API接口拒绝用户的访问请求,并在服务器端生成拒绝访问请求的信息,发送到用户端。其中拒绝访问的信息可以在管理界面自定义设置。当目标API接口为低访问量的API接口,进行自动化限流,返回系统默认的拒绝访问信息。
应当理解的是,图2示出的基于Redis的API接口限流方法的装置的结构框图中,各单元用于执行图1对应的实施例中的各步骤,而对于图1对应的实施例中的各步骤已在上述实施例中进行详细解释,具体请参阅图1以及图1所对应的实施例中的相关描述,此处不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备为服务器,其内部结构图可以如图3所示。该计算机设备30包括通过系统总线32连接的处理器31、内存储器33、网络接口34。其中,该计算机设备的处理器31用于提供计算和控制能力。该计算机设备30的存储器包括可读存储介质35、内存储器33。该可读存储介质35存储有操作系统36、计算机可读指令37和数据库38。该内存储器33为可读存储介质35中的操作系统36和计算机可读指令37的运行提供环境。该计算机设备30的数据库38用于存储基于Redis的API接口限流方法所涉及的数据。该计算机设备30的网络接口33用于与外部的终端通过网络连接通信。该计算机可读指令37被处理器31执行时以实现一种基于Redis的API接口限流方法方法。本实施例所提供的可读存储介质35包括非易失性可读存储介质和易失性可读存储介质。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性可读取存储介质或易失性可读存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Redis的API接口限流方法,其特征在于,包括:
基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;所述API接口的类型包括:低访问量的API接口,高访问量的API接口和核心API接口;
所述基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值,包括:
当所述API接口的类型为所述高访问量的API接口和所述核心API接口时,通过管理界面获取相应的周期访问阈值;
当所述API接口的类型为所述低访问量的API接口时,通过所述历史访问数据获取相应的周期访问阈值;
按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;
基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
2.如权利要求1所述的基于Redis的API接口限流方法,其特征在于,所述历史访问数据为在每个所述监控周期内API接口的访问次数。
3.如权利要求1所述的基于Redis的API接口限流方法,其特征在于,所述管理界面为可以实现与管理员进行交互的管理。
4.如权利要求1所述的基于Redis的API接口限流方法,其特征在于,所述按照预设的监控周期,从所述API接口集群中确定出目标API接口集合包括:
根据人工智能AI算法,自动监测所述API接口的所述监控周期的访问次数,根据所述周期访问阈值和所述访问次数获取目标API接口,根据所述目标API接口获得所述目标API接口集合。
5.如权利要求1所述的基于Redis的API接口限流方法,其特征在于,所述目标API接口集合包括低访问量的目标API接口,高访问量的目标API接口和核心目标API接口。
6.如权利要求1所述的基于Redis的API接口限流方法,其特征在于,所述基于所述目标API接口集合,利用Redis进行目标API接口限流操作包括:
将所述目标API接口集合存入到Redis数据库,通过所述Redis数据库和Redis的lua脚本对所述目标API接口进行限流。
7.如权利要求6所述的基于Redis的API接口限流方法,其特征在于,所述Redis数据库还包括所述监控周期和所述API接口的周期访问阈值。
8.一种Redis的API接口限流方法装置,其特征在于,
配置单元:基于被规划服务的API接口集群中每个API接口的类型与历史访问数据,为所述每个API接口配置相应的周期访问阈值;
确定单元:按照预设的监控周期,从所述API接口集群中确定出目标API接口集合;其中,所述目标API接口集合中的每个目标API接口为所述监控周期内被访问量超过所述周期访问阈值的API接口;
限流单元:基于所述目标API接口集合,利用Redis进行目标API接口限流操作。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述计算机可读指令为权利要求1-7任意一项所述的引擎生成的可读指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述任一权利要求1-7所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005282.0A CN113726676B (zh) | 2021-08-30 | 2021-08-30 | 基于Redis的API接口限流方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005282.0A CN113726676B (zh) | 2021-08-30 | 2021-08-30 | 基于Redis的API接口限流方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726676A true CN113726676A (zh) | 2021-11-30 |
CN113726676B CN113726676B (zh) | 2023-07-04 |
Family
ID=78679122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111005282.0A Active CN113726676B (zh) | 2021-08-30 | 2021-08-30 | 基于Redis的API接口限流方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113726676B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285849A (zh) * | 2021-12-21 | 2022-04-05 | 中国电信股份有限公司 | 限流状态的调整方法和装置、存储介质及电子装置 |
CN115174358A (zh) * | 2022-09-08 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 存储集群接口的监测处理方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170064574A1 (en) * | 2014-05-15 | 2017-03-02 | Huawei Technologies Co., Ltd. | Detecting apparatus and method for determining air interface resources consumed by service |
CN110290070A (zh) * | 2019-05-15 | 2019-09-27 | 北京三快在线科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
US20200368488A1 (en) * | 2017-08-08 | 2020-11-26 | Sony Corporation | Information processing apparatus and method, and program |
-
2021
- 2021-08-30 CN CN202111005282.0A patent/CN113726676B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170064574A1 (en) * | 2014-05-15 | 2017-03-02 | Huawei Technologies Co., Ltd. | Detecting apparatus and method for determining air interface resources consumed by service |
US20200368488A1 (en) * | 2017-08-08 | 2020-11-26 | Sony Corporation | Information processing apparatus and method, and program |
CN110290070A (zh) * | 2019-05-15 | 2019-09-27 | 北京三快在线科技有限公司 | 一种流量控制方法、装置、设备及可读存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285849A (zh) * | 2021-12-21 | 2022-04-05 | 中国电信股份有限公司 | 限流状态的调整方法和装置、存储介质及电子装置 |
CN115174358A (zh) * | 2022-09-08 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 存储集群接口的监测处理方法、系统、设备及存储介质 |
CN115174358B (zh) * | 2022-09-08 | 2023-01-17 | 浪潮电子信息产业股份有限公司 | 存储集群接口的监测处理方法、系统、设备及存储介质 |
WO2024051138A1 (zh) * | 2022-09-08 | 2024-03-14 | 浪潮电子信息产业股份有限公司 | 存储集群接口的监测处理方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113726676B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106487708B (zh) | 网络访问请求控制方法和装置 | |
US10511506B2 (en) | Method and device for managing virtualized network function | |
CN113726676A (zh) | 基于Redis的API接口限流方法、装置、计算机设备及存储介质 | |
US6499059B1 (en) | Method of controlling a network element using a service profile and apparatus of the same | |
CN113037794B (zh) | 计算资源配置调度方法、装置及系统 | |
CN107995286B (zh) | 基于dubbo平台的服务自动启停方法、服务器及存储介质 | |
CN110362356B (zh) | 函数数据处理方法、装置、计算机设备和存储介质 | |
CN114239060B (zh) | 数据获取方法、装置、电子设备及存储介质 | |
CN113961510B (zh) | 一种文件处理方法、装置、设备及存储介质 | |
CN111190719B (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN112422450A (zh) | 计算机设备、服务请求的流量控制方法及装置 | |
CN115086244A (zh) | 带宽分配方法、装置、计算机设备及存储介质 | |
CN111930505A (zh) | 大数据平台的数据资源管理方法及系统、服务器及介质 | |
CN115794396A (zh) | 资源分配的方法、系统和电子设备 | |
US20230353572A1 (en) | Managing access requests for policy-based access control systems in computer networks | |
CN115858419A (zh) | 元数据管理方法、装置、设备、服务器及可读存储介质 | |
CN111400060B (zh) | 设备联动方法、装置、服务器和介质 | |
CN112068899B (zh) | 插件加载方法、装置、电子设备及存储介质 | |
CN114281476A (zh) | Kubernetes云原生集群资源删除保护方法、装置、设备及存储介质 | |
CN114553859A (zh) | 一种bmc配置管理方法、装置、电子设备及存储介质 | |
CN114422530A (zh) | 流量控制方法、装置和计算机设备和存储介质 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN113127191A (zh) | 一种资源更新方法、存储介质及相关装置 | |
US8528002B2 (en) | Providing access control for a destination in a messaging system | |
CN115604345B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220921 Address after: Room 2601 (Unit 07), Qianhai Free Trade Building, No. 3048, Xinghai Avenue, Nanshan Street, Qianhai Shenzhen-Hong Kong Cooperation Zone, Shenzhen, Guangdong 518000 Applicant after: Shenzhen Ping An Smart Healthcare Technology Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |