CN110661815A - 基于频率限制微服务的请求处理方法、装置、***及介质 - Google Patents
基于频率限制微服务的请求处理方法、装置、***及介质 Download PDFInfo
- Publication number
- CN110661815A CN110661815A CN201911004650.2A CN201911004650A CN110661815A CN 110661815 A CN110661815 A CN 110661815A CN 201911004650 A CN201911004650 A CN 201911004650A CN 110661815 A CN110661815 A CN 110661815A
- Authority
- CN
- China
- Prior art keywords
- request
- user
- service
- user request
- service party
- 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.)
- Pending
Links
Images
Classifications
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- 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
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于频率限制微服务的请求处理方法、装置、***及介质,所述方法包括:提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。本发明可以解决业务与请求频率限制功能的高耦合,提高请求频率限制策略的多样性,更细粒度控制请求的访问,业务与请求频率限制功能相互独立,互不影响,进一步提高业务的可用性和稳定性。
Description
技术领域
本发明涉及一种基于频率限制微服务的请求处理方法、装置、***及介质,属于微服务架构技术领域。
背景技术
在互联网时代HTTP协议成为应用层通信的主要协议,站点通过HTTP协议来为用户提供各种各样的web服务。在web服务中,主要有两种访问量显著增加的情况,一是服务方发起的活动(如在某一时刻的商品抢购),用户访问量比平时有明显的增加,二是服务被攻击,如DDOS攻击(Distributed Denial of Service,分布式拒绝服务攻击),其原理就是利用大量的请求造成资源过载,导致服务不可用,这种恶意攻击可能比正常的访问或搞活动时的访问量更大。
限制请求的频率是一种有效的防止流量突发的应对策略,能提高服务的稳定性、可用性。限制请求频率是指在单位时候内,限制某类请求的数量,如果超过某一阈值,则在一定时间内或一定请求数内拒绝该类请求,达到保护***的目的。
微服务是一种以业务功能为主的服务设计概念,每一个服务都具有自主运行的业务功能,对外开放不受语言限制的API接口(最常用的是HTTP),应用程序则是由一个或多个微服务组成,采用微服务显著降低了***间的耦合性,每个服务专注于本业务,不同服务单独开发独立部署,提高了整体服务的健壮性。
目前的请求频率限制设计中,一方面是针对限制策略的。这方面的设计思想较少。目前主要是限制某一维度的请求数,如限制用户请求数或限制某一接口的请求数或限制用户IP的请求数等,不同业务可能采用不同的维度。如开放平台提供一系列API接口(Application Programming Interface,应用程序编程接口)来给第三方应用调用来访问开放平台的服务。第三方开放平台通过限制单位时间内应用程序和用户的访问次数来控制API接口的调用频率。更进一步,为了防止第三方的恶意调用对正常访问开放平台的不利影响,可能会对应用标识,用户标识,请求的IP标识进行检测,如果其中至少之一在单位时间内的请求频率超过各自对应的单位时间访问上限时,则拒绝所述API接口的调用请求。
另一方面对请求频率限制的算法上做优化,如提高请求频率统计的准确性,因为不只一台机器提供服务,单台机器可能单独统计某类请求的次数,从而进行限制,这样可能会造成统计的不准确性。如果要做到准确的统计,需要将统计变量全局保存(如存放在公共的存储上)。服务器收到请求后,会操作全局变量。在这种方式中,全局变量的访问与业务接口的访问是一个量级,当业务接口的并发请求量达到了公共存储的访问负载时,全局频率限制就会大量失败,导致服务不可用。
目前的请求频率限制技术存在三个方面的问题:
1)业务接口与请求频率限制功能高耦合。目前的技术方案中,请求频率限制功能往往与业务功能集成在一起,请求频率限制功能作为***的一个子功能来使用,请求频率限制功能依赖于业务难分离,每个***可能需要单独开发一个请求频率限制功能,这样造成请求频率限制功能不具有通用性,也无法为其他***所使用。
2)请求维度单一,限制策略不丰富。目前的请求频率限制中,统计的维度根据业务而定,主要有请求的源IP地址、用户标识、调用接口等进行单一的统计而没有综合多维度考虑,限制策略主要是限制用户请求数,限制请求源IP地址请求数,限制调用接口数据等。这样的限制策略粒度太大,可能无法准确地拒绝DDOS攻击请求。
3)请求频率限制功能影响业务。请求频率限制功能与业务集成在一起,如果请求频率限制功能出现问题就会影响正常的业务,导致服务不可用,请求频率限制功能与业务无关,但却能影响业务。
发明内容
有鉴于此,本发明提供了一种基于频率限制微服务的请求处理方法、装置、微服务***、微服务处理设备及存储介质,其可以解决业务与请求频率限制功能的高耦合,提高请求频率限制策略的多样性,更细粒度控制请求的访问,业务与请求频率限制功能相互独立,互不影响,进一步提高业务的可用性和稳定性。
本发明的第一个目的在于提供一种基于频率限制微服务的请求处理方法。
本发明的第二个目的在于提供一种基于频率限制微服务的请求处理装置。
本发明的第三个目的在于提供一种微服务***。
本发明的第四个目的在于提供一种微服务处理设备。
本发明的第五个目的在于提供一种存储介质。
本发明的第一个目的可以通过采取如下技术方案达到:
一种基于频率限制微服务的请求处理方法,所述方法包括:
提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
进一步的,所述根据请求频率限制策略,判断是否接受用户请求,具体包括:
根据请求频率限制策略,统计该请求频率限制策略下单位时间内的请求频率;
当单位时间内的请求频率小于设置的请求频率上限阈值时,接受用户请求;
当单位时间内的请求频率大于或等于设置的请求频率上限阈值时,拒绝用户请求。
进一步的,所述请求频率限制策略为以下七种请求频率限制策略的其中一种:
源IP地址的请求频率限制策略;
用户标识的请求频率限制策略;
业务方API接口标识的请求频率限制策略;
在某个源IP地址下,用户标识的请求频率限制策略;
在某个源IP地址下,业务方API接口标识的请求频率限制策略;
在某个用户标识下,业务方API接口标识的请求频率限制策略;
在某个源IP地址和某个用户标识下,业务方API接口标识的请求频率限制策略。
进一步的,所述根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识之后,还包括:
判断是否有设置黑名单;
当有设置黑名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在黑名单中时,拒绝用户请求;
当没有设置黑名单,或用户请求的源IP地址、用户标识和业务方API接口标识都不在黑名单中时,执行后续步骤。
进一步的,所述根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识之后,还包括:
判断是否有设置白名单;
当有设置白名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识都不在白名单中时,拒绝用户请求;
当没有设置白名单,或用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在白名单中时,执行后续步骤。
进一步的,所述方法还包括:
当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
本发明的第二个目的可以通过采取如下技术方案达到:
一种基于频率限制微服务的请求处理装置,所述装置包括:
接收模块,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
提取模块,用于根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
判断模块,用于获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
反馈模块,用于当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
本发明的第三个目的可以通过采取如下技术方案达到:
一种微服务***,所述***包括全局缓存设备、管理后台和多台微服务处理设备,所述多台微服务处理设备分别与全局缓存设备相连,所述全局缓存设备与管理后台相连;
所述管理后台,用于提供多种请求频率限制策略的全局请求配额设置和修改;
所述全局缓存设备,用于将全局配额预分配的请求频率限制策略分配给每台微服务处理设备;
每台微服务处理设备,用于执行权利要求1-6任一项所述的请求处理方法。
本发明的第四个目的可以通过采取如下技术方案达到:
一种微服务处理设备,包括处理器和用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的请求处理方法。
本发明的第五个目的可以通过采取如下技术方案达到:
一种存储介质,存储有程序,所述程序被处理器执行时,实现上述的请求处理方法。
本发明相对于现有技术具有如下的有益效果:
1、本发明采用频率限制微服务的方式给业务方提供API接口调用,内部实现方式与技术架构对业务方来说是完全透明的,业务与频率限制功能完全解耦,即业务方与频率限制微服务相互独立,可以独立部署,独立开发与维护,从而使得业务方专注于业务逻辑实现,降低了微服务***的实现复杂性。
2、本发明的频率限制微服务根据源IP地址、用户标识和业务方API接口标识这三个维度实现了七种请求频率限制策略,可以适应多种不同的请求频率限制策略需求,能有效地检测并拒绝恶意的DDOS攻击,保障微服务***的稳定性。
3、本发明的频率限制功能与业务解耦,如果频率限制功能出现问题,业务方可以做异步处理,如API接口调用异常(超时或频率限制微服务返回非HTTP 200状态),业务方可不参考频率限制微服务的结果,即频率限制功能不影响业务。
4、本发明的微服务***中,微服务处理设备中的相关配置变量信息从全局缓存设备上拉取并写入到本地缓存,将更新操作分散到各台微服务处理设备中,避免每次业务方的请求都更新全局缓存设备,由于微服务流量入口处采用负载均衡机制将业务方的请求分散在各台微服务处理设备上,因此可以提高请求的处理能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例1的基于频率限制微服务的请求处理方法的流程图。
图2为本发明实施例1的用户、业务方和频率限制微服务的关系示意图。
图3为本发明实施例1的根据请求频率限制策略,判断是否接受用户请求的流程图。
图4为本发明实施例2的基于频率限制微服务的请求处理方法的流程图。
图5为本发明实施例3的基于频率限制微服务的请求处理方法的流程图。
图6为本发明实施例4的微服务***的结构框图。
图7为本发明实施例4的微服务***中各个设备的结构框图。
图8为本发明实施例5的基于频率限制微服务的请求处理装置的结构框图。
图9为本发明实施例6的基于频率限制微服务的请求处理装置的结构框图。
图10为本发明实施例7的基于频率限制微服务的请求处理装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1和图2所示,本实施例提供了一种基于频率限制微服务的请求处理方法,主要通过频率限制微服务来执行,频率限制微服务在微服务处理设备上实现,该方法包括以下步骤:
S101、提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
用户可以通过客户端向业务方发送用户请求信息,用户请求信息包括用户请求的源IP地址(IP)、用户标识(ID)和业务方API接口标识(APIID),其中用户标识由业务方负责确定,业务方API接口标识由业务方预先向频率限制微服务注册。
业务方在接收到用户请求信息后,根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识,将用户请求的源IP地址、用户标识和业务方API接口标识作为参数,调用频率限制微服务提供的API接口,捕获API接口的调用情况,若API接口调用异常,如超时或频率限制微服务返回非HTTP 200状态的响应结果,则跳过请求频率限制服务,直接处理用户请求,若API接口调用正常,则将用户请求信息作为业务方的请求发送给频率限制微服务,由频率限制微服务接收。
S102、根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
频率限制微服务接收到业务方发送的用户请求信息后,根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
S103、获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求。
如图3所示,该步骤具体包括:
S1031、获取业务方预先设置的请求频率限制策略。
请求频率限制策略基于源IP地址、用户标识和业务方API接口标识这三个维度进行设计,共有七种请求频率限制策略,如下:
1)源IP地址的请求频率限制策略。
2)用户标识的请求频率限制策略。
3)业务方API接口标识的请求频率限制策略。
4)在某个源IP地址下,用户标识的请求频率限制策略。
5)在某个源IP地址下,业务方API接口标识的请求频率限制策略。
6)在某个用户标识下,业务方API接口标识的请求频率限制策略。
7)在某个源IP地址和某个用户标识下,业务方API接口标识的请求频率限制策略。
七种请求频率限制策略的具体说明如下表1所示,业务方可以预先在管理后台设置七种请求频率限制策略的其中一种。
表1请求频率限制策略
通过上述七种请求频率限制策略,能够更加精细地控制请求的频率,这七种请求频率限制策略不仅能单独使用,也能组合使用,如不仅能限制某一业务方API接口的请求频率(上述第三种请求频率限制策略),还能限制某个用户标识对此业务方API接口的请求频率(上述第六种请求频率限制策略),某个源IP地址对此业务方API接口的请求频率(上述第五种请求频率限制策略),某个源IP地址下某个用户对此业务方API接口的请求频率(上述第七种请求频率限制策略),这些请求频率限制策略可以灵活地由业务方进行选择,前三种请求频率限制策略,提供粗粒度的配置,后四种请求频率限制策略提供更加精细的请求控制,有效防止恶意的DDOS攻击,同时又不拒绝正常的用户请求。
S1032、根据请求频率限制策略,统计该请求频率限制策略下单位时间内的请求频率。
S1033、判断单位时间内的请求频率是否小于设置的请求频率上限阈值,若是,则接受用户请求,进入步骤S104,若否,则拒绝用户请求,进入步骤S105。
S104、将接受用户请求的响应结果反馈给业务方。
具体地,频率限制微服务将接受用户请求的响应结果反馈给业务方,由于频率限制微服务反馈的响应结果是接受用户请求,因此业务方会对用户请求进行处理,即处理用户请求的业务逻辑。
S105、将拒绝用户请求的响应结果反馈给业务方。
具体地,频率限制微服务将拒绝用户请求的响应结果反馈给业务方,由于频率限制微服务反馈的响应结果是拒绝用户请求,因此业务方将拒绝请求的指示发送给用户。
实施例2:
如图4所示,本实施例提供了一种基于频率限制微服务的请求处理方法,该方法应用于具有黑名单功能的情况,包括以下步骤:
S401、提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
S402、根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
S403、判断是否有设置黑名单,若是,进入步骤S404,若否,进入步骤S405。
S404、检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中,若是,拒绝用户请求,进入步骤S407,若否,进入步骤S405。
S405、获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求,若是,进入步骤S406,若否,进入步骤S407。
S406、将接受用户请求的响应结果反馈给业务方。
S407、将拒绝用户请求的响应结果反馈给业务方。
上述步骤S401~S402、S405~S407的具体内容可以参见上述实施例1的步骤S101~S105,在此不再一一赘述。
实施例3:
如图5所示,本实施例提供了一种基于频率限制微服务的请求处理方法,该方法应用于具有白名单功能的情况,包括以下步骤:
S501、提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
S502、根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
S503、判断是否有设置白名单,若是,进入步骤S504,若否,进入步骤S505。
S504、检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中,若是,进入步骤S505,若否,拒绝请求,进入步骤S507。
S505、获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求,若是,进入步骤S506,若否,进入步骤S507。
S506、将接受用户请求的响应结果反馈给业务方。
S507、将拒绝用户请求的响应结果反馈给业务方。
上述步骤S501~S502、S505~S507的具体内容可以参见上述实施例1的步骤S101~S105,在此不再一一赘述。
本领域技术人员可以理解,实现上述实施例1~3的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。
应当注意,尽管在附图中以特定顺序描述了上述实施例1~3的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
实施例4:
如图6所示,本实施例提供了一种微服务***,该***包括全局缓存设备601、管理后台602和多台微服务处理设备603,多台微服务处理设备601分别与全局缓存设备601相连,全局缓存设备601与管理后台602相连。
所述管理后台602,用于提供多种请求频率限制策略的全局请求配额设置和修改、维度(源IP地址、用户标识和业务方API接口标识)统计单位时间的长度设置、拒绝时长的设置、黑白名单的设置等,其中黑白名单是互斥的,只能设置其中一种,并能做到实时设置实时生效,如果对应的请求频率限制策略不使用,可以不设置,这样业务方可以根据自己的业务需要来灵活设置,管理后台602更新的配置,更新到全局缓存设备601和各台微服务处理设备603的本地缓存中。
所述全局缓存设备601为全局缓存服务器,用于将全局配额预分配的请求频率限制策略分配给每台微服务处理设备603,每种请求频率限制策略的全局配额、维度统计单位时间、拒绝时长、黑白名单等全局设置存储在全局缓存服务器上(如redis)。
每台微服务处理设备603,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
每台微服务处理设备603在具有黑名单功能的情况下,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;判断是否有设置黑名单;当有设置黑名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中;当用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在黑名单中时,拒绝用户请求;当没有设置黑名单,或用户请求的源IP地址、用户标识和业务方API接口标识都不在黑名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
每台微服务处理设备603在具有白名单功能的情况下,用于接收业务方发送的用户请求信息;根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;判断是否有设置黑名单;当有设置白名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中;当用户请求的源IP地址、用户标识和业务方API接口标识都不在白名单中时,拒绝用户请求;当没有设置白名单,或用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在白名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
每台微服务处理设备603为区别于全局缓存服务器的服务器,都有本地缓存(如redis,Memcached),微服务处理设备603中的相关配置变量信息从全局缓存设备601上拉取并写入到本地缓存,将更新操作分散到各台微服务处理设备603中,避免每次业务方的请求都更新全局缓存设备601,由于微服务流量入口处采用负载均衡机制将业务方的请求分散在各台微服务处理设备603上,因此可以提高请求的处理能力。
上述全局缓存设备601、管理后台602和微服务处理设备603的结构类似,如图7所示,包括通过***总线701连接的处理器702、存储器和网络接口703,该处理器用于提供计算和控制能力,该存储器包括非易失性存储介质704和内存储器705,该非易失性存储介质704存储有操作***、计算机程序和数据库,该内存储器705为非易失性存储介质中的操作***和计算机程序的运行提供环境,计算机程序被处理器702执行时,实现相应的功能。
实施例5:
如图8所示,本实施例提供了一种基于频率限制微服务的请求处理装置,该装置包括接收模块801、提取模块802、判断模块803、第一反馈模块804和第二反馈模块805,各个模块的具体功能如下:
所述接收模块801,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
所述提取模块802,用于根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
所述判断模块803,用于获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求。
所述第一反馈模块804,用于当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
所述第二反馈模块805,用于当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
实施例6:
如图9所示,本实施例提供了一种基于频率限制微服务的请求处理装置,该装置应用于具有黑名单功能的情况,其包括接收模块901、提取模块902、第一判断模块903、检测模块904、拒绝模块905、第二判断模块906、第一反馈模块907和第二反馈模块908,各个模块的具体功能如下:
所述接收模块901,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
所述提取模块902,用于根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
所述第一判断模块903,用于判断是否有设置黑名单。
所述检测模块904,用于当有设置黑名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中。
所述拒绝模块905,用于当用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在黑名单中时,拒绝用户请求。
所述第二判断模块906,用于当没有设置黑名单,或用户请求的源IP地址、用户标识和业务方API接口标识都不在黑名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求。
所述第一反馈模块907,用于当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
所述第二反馈模块908,用于当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
实施例7:
如图10所示,本实施例提供了一种基于频率限制微服务的请求处理装置,该装置应用于具有白名单功能的情况,其包括接收模块1001、提取模块1002、第一判断模块1003、检测模块1004、拒绝模块1005、第二判断模块1006、第一反馈模块1007和第二反馈模块1008,各个模块的具体功能如下:
所述接收模块1001,用于提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息。
所述提取模块1002,用于根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识。
所述第一判断模块1003,用于判断是否有设置黑名单。
所述检测模块1004,用于当有设置白名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中。
所述拒绝模块1005,用于当用户请求的源IP地址、用户标识和业务方API接口标识都不在白名单中时,拒绝用户请求;
所述第二判断模块1006,用于当没有设置白名单,或用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在白名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求。
所述第一反馈模块1007,用于当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
所述第二反馈模块1008,用于当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
上述实施例5~7中各个模块的具体实现可以参见上述实施例1,在此不再一一赘述;需要说明的是,上述实施例5~7中提供的装置仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
可以理解,上述实施例5~7的装置中所使用的术语“第一”、“第二”等可用于描述各种模块,但这些模块不受这些术语限制。这些术语仅用于将第一个模块与另一个模块区分。举例来说,在不脱离本发明的范围的情况下,可以将第一判断模块称为第二判断模块,且类似地,可将第二判断模块称为第一判断模块,第一判断模块和第二判断模块两者都是判断模块,但其不是同一判断模块。
实施例8:
本实施例提供了一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时,实现上述实施例1的请求处理方法,如下:
提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;
当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
实施例9:
本实施例提供了一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时,实现上述实施例2的请求处理方法,如下:
提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
判断是否有设置黑名单;
当有设置黑名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在黑名单中时,拒绝用户请求;
当没有设置黑名单,或用户请求的源IP地址、用户标识和业务方API接口标识都不在黑名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;
当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
实施例10:
本实施例提供了一种存储介质,该存储介质为计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时,实现上述实施例3的请求处理方法,如下:
提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
判断是否有设置黑名单;
当有设置白名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识都不在白名单中时,拒绝用户请求;
当没有设置白名单,或用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在白名单中时,获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理;
当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
本实施例中所述的存储介质可以是磁盘、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、U盘、移动硬盘等介质。
综上所述,本发明可以解决业务与请求频率限制功能的高耦合,提高请求频率限制策略的多样性,更细粒度控制请求的访问,业务与请求频率限制功能相互独立,互不影响,进一步提高业务的可用性和稳定性。
以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明构思加以等同替换或改变,都属于本发明专利的保护范围。
Claims (10)
1.一种基于频率限制微服务的请求处理方法,其特征在于,所述方法包括:
提供API接口给业务方调用,在API接口调用正常时,接收业务方发送的用户请求信息;
根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
2.根据权利要求1所述的请求处理方法,其特征在于,所述根据请求频率限制策略,判断是否接受用户请求,具体包括:
根据请求频率限制策略,统计该请求频率限制策略下单位时间内的请求频率;
当单位时间内的请求频率小于设置的请求频率上限阈值时,接受用户请求;
当单位时间内的请求频率大于或等于设置的请求频率上限阈值时,拒绝用户请求。
3.根据权利要求2所述的请求处理方法,其特征在于,所述请求频率限制策略为以下七种请求频率限制策略的其中一种:
源IP地址的请求频率限制策略;
用户标识的请求频率限制策略;
业务方API接口标识的请求频率限制策略;
在某个源IP地址下,用户标识的请求频率限制策略;
在某个源IP地址下,业务方API接口标识的请求频率限制策略;
在某个用户标识下,业务方API接口标识的请求频率限制策略;
在某个源IP地址和某个用户标识下,业务方API接口标识的请求频率限制策略。
4.根据权利要求1所述的请求处理方法,其特征在于,所述根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识之后,还包括:
判断是否有设置黑名单;
当有设置黑名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在黑名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在黑名单中时,拒绝用户请求;
当没有设置黑名单,或用户请求的源IP地址、用户标识和业务方API接口标识都不在黑名单中时,执行后续步骤。
5.根据权利要求1所述的请求处理方法,其特征在于,所述根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识之后,还包括:
判断是否有设置白名单;
当有设置白名单时,检测用户请求的源IP地址、用户标识和业务方API接口标识的其中之一是否在白名单中;
当用户请求的源IP地址、用户标识和业务方API接口标识都不在白名单中时,拒绝用户请求;
当没有设置白名单,或用户请求的源IP地址、用户标识和业务方API接口标识的其中之一在白名单中时,执行后续步骤。
6.根据权利要求1-5任一项所述的请求处理方法,其特征在于,所述方法还包括:
当拒绝用户请求时,将拒绝用户请求的响应结果反馈给业务方,以使业务方将拒绝请求的指示发送给用户。
7.一种基于频率限制微服务的请求处理装置,其特征在于,所述装置包括:
接收模块,用于接收业务方发送的用户请求信息;
提取模块,用于根据用户请求信息,提取用户请求的源IP地址、用户标识和业务方API接口标识;
判断模块,用于获取业务方预先设置的请求频率限制策略,根据请求频率限制策略,判断是否接受用户请求;
反馈模块,用于当接受用户请求时,将接受用户请求的响应结果反馈给业务方,以使业务方对用户请求进行处理。
8.一种微服务***,其特征在于,所述***包括全局缓存设备、管理后台和多台微服务处理设备,所述多台微服务处理设备分别与全局缓存设备相连,所述全局缓存设备与管理后台相连;
所述管理后台,用于提供多种请求频率限制策略的全局请求配额设置和修改;
所述全局缓存设备,用于将全局配额预分配的请求频率限制策略分配给每台微服务处理设备;
每台微服务处理设备,用于执行权利要求1-6任一项所述的请求处理方法。
9.一种微服务处理设备,包括处理器和用于存储处理器可执行程序的存储器,其特征在于,所述处理器执行存储器存储的程序时,实现权利要求1-6任一项所述的请求处理方法。
10.一种存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1-6任一项所述的请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911004650.2A CN110661815A (zh) | 2019-10-22 | 2019-10-22 | 基于频率限制微服务的请求处理方法、装置、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911004650.2A CN110661815A (zh) | 2019-10-22 | 2019-10-22 | 基于频率限制微服务的请求处理方法、装置、***及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110661815A true CN110661815A (zh) | 2020-01-07 |
Family
ID=69041703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911004650.2A Pending CN110661815A (zh) | 2019-10-22 | 2019-10-22 | 基于频率限制微服务的请求处理方法、装置、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110661815A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443962A (zh) * | 2020-03-31 | 2020-07-24 | 海南新软软件有限公司 | 一种交易限制方法及装置 |
CN111556109A (zh) * | 2020-04-17 | 2020-08-18 | 北京达佳互联信息技术有限公司 | 请求处理方法、装置、电子设备和存储介质 |
CN111782692A (zh) * | 2020-06-01 | 2020-10-16 | 京东数字科技控股有限公司 | 一种频率控制方法及装置 |
CN113608893A (zh) * | 2021-07-23 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 防止重复下发策略给RabbitMQ的方法、***、终端及存储介质 |
CN113765986A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种开放平台的流量控制方法和服务器 |
CN117278640A (zh) * | 2023-09-05 | 2023-12-22 | 北京长河数智科技有限责任公司 | 一种基于数据归集的api接口调用方法及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379090A (zh) * | 2012-04-12 | 2013-10-30 | 腾讯科技(北京)有限公司 | 一种开放平台访问的频率控制方法和***、频率服务器 |
CN103425526A (zh) * | 2012-05-18 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种接口调用的控制方法及装置 |
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及*** |
US20160182536A1 (en) * | 2014-12-19 | 2016-06-23 | Ca, Inc. | Adapting user terminal application operation responsive to measured user behavior |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
CN106130967A (zh) * | 2016-06-20 | 2016-11-16 | 乐视控股(北京)有限公司 | 一种在私有云对象存储中防止被攻击的方法和*** |
CN107888656A (zh) * | 2017-10-09 | 2018-04-06 | 北京京东尚科信息技术有限公司 | 服务端接口的调用方法和调用装置 |
CN109086149A (zh) * | 2018-08-15 | 2018-12-25 | 国云科技股份有限公司 | 一种微服务接口调用热点分析的方法 |
CN109684105A (zh) * | 2018-12-18 | 2019-04-26 | 中国平安人寿保险股份有限公司 | 在微服务架构下对请求进行控制的方法、设备和存储介质 |
CN109831504A (zh) * | 2019-01-31 | 2019-05-31 | 泰康保险集团股份有限公司 | 微服务请求处理方法、装置及设备 |
-
2019
- 2019-10-22 CN CN201911004650.2A patent/CN110661815A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103379090A (zh) * | 2012-04-12 | 2013-10-30 | 腾讯科技(北京)有限公司 | 一种开放平台访问的频率控制方法和***、频率服务器 |
CN103425526A (zh) * | 2012-05-18 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种接口调用的控制方法及装置 |
CN103701709A (zh) * | 2013-12-13 | 2014-04-02 | 北京京东尚科信息技术有限公司 | 一种流量控制方法及*** |
US20160182536A1 (en) * | 2014-12-19 | 2016-06-23 | Ca, Inc. | Adapting user terminal application operation responsive to measured user behavior |
CN105740376A (zh) * | 2016-01-27 | 2016-07-06 | 北京铭万智达科技有限公司 | 一种微服务中api调用统计和监控的方法 |
CN106130967A (zh) * | 2016-06-20 | 2016-11-16 | 乐视控股(北京)有限公司 | 一种在私有云对象存储中防止被攻击的方法和*** |
CN107888656A (zh) * | 2017-10-09 | 2018-04-06 | 北京京东尚科信息技术有限公司 | 服务端接口的调用方法和调用装置 |
CN109086149A (zh) * | 2018-08-15 | 2018-12-25 | 国云科技股份有限公司 | 一种微服务接口调用热点分析的方法 |
CN109684105A (zh) * | 2018-12-18 | 2019-04-26 | 中国平安人寿保险股份有限公司 | 在微服务架构下对请求进行控制的方法、设备和存储介质 |
CN109831504A (zh) * | 2019-01-31 | 2019-05-31 | 泰康保险集团股份有限公司 | 微服务请求处理方法、装置及设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443962A (zh) * | 2020-03-31 | 2020-07-24 | 海南新软软件有限公司 | 一种交易限制方法及装置 |
CN111556109A (zh) * | 2020-04-17 | 2020-08-18 | 北京达佳互联信息技术有限公司 | 请求处理方法、装置、电子设备和存储介质 |
CN111556109B (zh) * | 2020-04-17 | 2021-05-18 | 北京达佳互联信息技术有限公司 | 请求处理方法、装置、电子设备和存储介质 |
CN111782692A (zh) * | 2020-06-01 | 2020-10-16 | 京东数字科技控股有限公司 | 一种频率控制方法及装置 |
WO2021244473A1 (zh) * | 2020-06-01 | 2021-12-09 | 京东科技控股股份有限公司 | 频率控制方法及装置 |
CN111782692B (zh) * | 2020-06-01 | 2024-04-16 | 京东科技控股股份有限公司 | 一种频率控制方法及装置 |
CN113765986A (zh) * | 2021-01-18 | 2021-12-07 | 西安京迅递供应链科技有限公司 | 一种开放平台的流量控制方法和服务器 |
CN113765986B (zh) * | 2021-01-18 | 2024-05-21 | 西安京迅递供应链科技有限公司 | 一种开放平台的流量控制方法和服务器 |
CN113608893A (zh) * | 2021-07-23 | 2021-11-05 | 苏州浪潮智能科技有限公司 | 防止重复下发策略给RabbitMQ的方法、***、终端及存储介质 |
CN113608893B (zh) * | 2021-07-23 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 防止重复下发策略给RabbitMQ的方法、***、终端及存储介质 |
CN117278640A (zh) * | 2023-09-05 | 2023-12-22 | 北京长河数智科技有限责任公司 | 一种基于数据归集的api接口调用方法及*** |
CN117278640B (zh) * | 2023-09-05 | 2024-05-17 | 北京长河数智科技有限责任公司 | 一种基于数据归集的api接口调用方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661815A (zh) | 基于频率限制微服务的请求处理方法、装置、***及介质 | |
CN110996352B (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN108683604B (zh) | 并发访问控制方法、终端设备及介质 | |
CN109257293B (zh) | 一种用于网络拥堵的限速方法、装置及网关服务器 | |
CN108389121B (zh) | 贷款数据处理方法、装置、计算机设备和存储介质 | |
CN110958228A (zh) | 爬虫访问拦截方法及设备、服务器和计算机可读存储介质 | |
CN108989352B (zh) | 防火墙实现方法、装置、计算机设备及存储介质 | |
CN115174269B (zh) | Linux主机网络通信安全防护方法和装置 | |
CN108416665B (zh) | 数据交互方法、装置、计算机设备和存储介质 | |
US20170272541A1 (en) | Local enforcement of computer resource quotas | |
US20220329609A1 (en) | Network Security Protection Method and Protection Device | |
CN114095258A (zh) | 攻击防御方法、装置、电子设备及存储介质 | |
CN115934202A (zh) | 一种数据管理方法、***、数据服务网关及存储介质 | |
CN110838987A (zh) | 队列限流方法、存储介质 | |
CN109657485B (zh) | 权限处理方法、装置、终端设备和存储介质 | |
US8266258B1 (en) | Enhanced throttle management system | |
CN111274029A (zh) | 集群调度方法及装置 | |
CN113965367B (zh) | 策略对象上限控制方法、***、计算机及存储介质 | |
CN113645060B (zh) | 一种网卡配置方法、数据处理方法及装置 | |
CN112153036B (zh) | 一种基于代理服务器的安全防御方法及*** | |
CN110012033B (zh) | 一种数据传输方法、***及相关组件 | |
CN110417615B (zh) | 校验开关控制方法、装置、设备及计算机可读存储介质 | |
CN109933406B (zh) | 基于亲和性调整Docker组件部署的方法和相关设备 | |
US20200412616A1 (en) | Policy conflict resolution system and policy conflict resolution method | |
KR20040105355A (ko) | 서비스거부 공격 및 분산 서비스거부 공격 차단 기능을갖는 네트워크 인터페이스 카드와 이를 이용한서비스거부 공격 및 분산 서비스거부 공격 차단방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200107 |