CN111600807A - 一种基于api网关设备的流量控制方法和系统 - Google Patents
一种基于api网关设备的流量控制方法和系统 Download PDFInfo
- Publication number
- CN111600807A CN111600807A CN202010290390.6A CN202010290390A CN111600807A CN 111600807 A CN111600807 A CN 111600807A CN 202010290390 A CN202010290390 A CN 202010290390A CN 111600807 A CN111600807 A CN 111600807A
- Authority
- CN
- China
- Prior art keywords
- request
- api gateway
- service component
- concurrency
- service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 21
- 230000036541 health Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 238000011160 research Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于API网关设备的流量控制方法和系统,属于网络通信技术领域。所述方法包括:所述API网关设备接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;如果大于,所述API网关设备则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。采用本发明,可以大幅减轻业务组件负载压力,减少设备资源的浪费,同时便于业务组件的设计研发以及升级维护。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种基于API网关设备的流量控制方法和系统。
背景技术
随着网络通信技术的不断进步,网络业务得到了快速大幅的发展,相应的,业务请求的并发量急剧增加。为了应对大量并发的业务请求,当并发的请求数量超过业务组件的负载上限时,业务服务方普遍会对业务请求进行限流,以保护后端业务组件的正常运行,避免后端被过高的负载冲垮。
具体过程中,业务服务方可以在各个业务组件上设置请求并发上限。业务组件在对外提供业务服务时,可以记录当前业务组件的请求并发总数。当接收到新的业务请求时,业务组件可以查看上述请求并发总数,判断是否已达到预设的请求并发上限。若达到,业务组件则可以等待已接入的请求处理完毕后,再开始处理该业务请求;若未达到,业务组件则可以直接处理该业务请求。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由每个业务组件独立对业务请求进行流量控制,一方面会造成业务组件的功能代码量大幅增加,不便于前期的设计研发以及后期的升级维护;另一方面,每个业务组件均需要消耗一定的设备资源进行流量控制,不仅会造成设备资源的大量浪费,也会对设备性能产生影响。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于API网关设备的流量控制方法和系统。所述技术方案如下:
第一方面,提供了一种基于API网关设备的流量控制方法,所述方法应用于API网关集群,所述API网关集群包含中心计数组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述方法包括:
所述API网关设备接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;
所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,所述API网关设备则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
第二方面,提供了一种基于API网关设备的流量控制系统,所述系统包含中心计数组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述API网关设备,用于:
接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;
判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,API网关设备接收指向目标业务组件的业务请求,获取中心计数组记录的目标业务组件的请求并发总数;API网关设备判断请求并发总数,是否大于目标业务组件的请求并发上限;如果大于,API网关设备则拒绝业务请求,否则将业务请求发送至目标业务组件对应的API接口。这样,通过API网关集群来对业务组件进行流量控制,并利用中心计数组来统一记录业务组件的请求并发总数,后端业务组件可以只关注自身业务实现,将业务组件的可用性、流量控制等非业务问题交由API网关设备保证,从而可以大幅减轻业务组件负载压力,减少设备资源的浪费,同时便于业务组件的设计研发以及升级维护。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种API网关集群的网络框架示意图;
图2是本发明实施例提供的一种基于API网关设备的流量控制方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种基于API网关设备的流量控制方法,该方法可以应用于API网关集群,如图1所示,API网关集群包含中心计数组和分布式部署的多个API网关设备。API网关设备可以是业务组件的请求入口,每个API网关设备可以对应至少一个业务组件,主要用于接收指向其对应的业务组件的业务请求,将业务请求转发至后端的业务组件,从而业务组件可以基于执行逻辑对业务请求处理并响应。同时,API网关设备还可以具备统协议适配、流量管理、以及安全防护等功能。其中,中心计数组可以同时服务多个API网关设备,具体可以用于记录多个API网关设备接收到的业务请求的数量。中心计数组可以是由分布式部署的多台计数设备构成的设备集群,每台计数设备可以与一个API网关设备部署于同一个机房,用于记录同机房内的API网关设备所接收到的业务请求的相关信息。进一步的,分布式部署的多台计数设备之间可以实现数据共享,从而可以实现业务组件维度的业务请求的统计。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,API网关设备接收指向目标业务组件的业务请求,获取中心计数组记录的目标业务组件的请求并发总数。
其中,目标业务组件可以是API网关的任意一个后台业务组件。
在实施中,业务提供方在开通了API网关设备服务后,业务组件的访问地址可以更改为API网关设备的访问地址。细节而言,在分布式部署API网关设备的场景下,不同区域内可以部署有不同的API网关设备,相应的,任意区域内业务组件的访问地址可以是部署在该区域内API网关设备的访问地址。这样,当用户发起了指向目标业务组件的业务请求时,业务请求经网络传输将到达用户所在区域内的API网关设备处。API网关设备在接收到业务请求后,可以确定该业务请求所指向的目标业务组件,然后向中心计数组发送携带有目标业务组件标识的请求数查询消息。进而,中心计数组在接收到该请求数查询消息后,可以调取已记录的目标业务组件的请求并发总数,并将该请求并发总数反馈至API网关设备。
可选的,API网关设备可以在获取请求并发总数之前,先上报业务请求的请求标识,相应的处理可以如下:API网关设备生成业务请求的请求标识,并向中心计数组上报请求标识,以使中心计数组更新目标业务组件的请求并发状态。
在实施中,API网关设备在接收到指向目标业务组件的业务请求后,可以先生成该业务请求的请求标识,请求标识可以唯一标识业务请求,一个请求标识对应一个业务请求。之后,API网关设备可以将该请求标识上报至中心计数组。中心计数组接收到该请求标识后,可以确定请求标识对应的目标业务组件,然后更新目标业务组件的请求并发状态。可以理解,API网关设备在获取请求并发总数之前,先上传当前业务请求的请求标识,可以避免大量API网关设备同时接收到目标业务请求的业务请求,而无法及时发现请求并发总数突增的情况。对比来讲,若在上传请求标识之前就获取请求并发总数,业务突增前,请求并发总数较小,则多个API网关设备都判定业务组件负载较低,则都将业务请求发送至业务组件,从而会导致业务组件负载瞬间增高,进入过载状态。而若先上传请求标识,中心计数组逐一根据请求标识更新请求并发状态,从而可以对业务流量进行准确的控制,可以有效避免请求量瞬间突增而导致业务组件进入过载状态。
步骤202,API网关设备判断请求并发总数,是否大于目标业务组件的请求并发上限。
在实施中,API网关设备从中心计数组获取到目标业务组件的请求并发总数后,可以读取本地内存中记录的目标业务组件的请求并发上限。之后,API网关设备可以将上述请求并发总数与请求并发上限进行比较,判断请求并发总数,是否大于请求并发上限。此处,业务组件的请求并发上限可以是业务提供方根据业务组件的负载能力而设置的,并提前存储在API网关设备的内存中。当某一业务组件的请求并发上限需要调整时,业务提供方可以在中心计数组中设置该业务组件调整后的请求并发上限,而当API网关设备再次获取该业务组件的请求并发总数时,中心计数组可以在反馈请求并发总数的同时,将上述调整后的请求并发上限一并发送至API网关设备。
步骤203,如果大于,API网关设备则拒绝业务请求,否则将业务请求发送至目标业务组件对应的API接口。
在实施中,如果经比对发现目标业务组件的请求并发总数大于请求并发上限,则表明目标业务组件当前负载已达到饱和,无法再执行该业务请求,故而API网络设备可以拒绝该业务请求。而如果目标业务组件的请求并发总数未大于请求并发上限,则表明目标业务组件当前负载未达到饱和,可以执行更多的业务请求,这样API网络设备可以将业务请求发送至目标业务组件对应的API接口,从而业务请求可以经API接口传输至目标业务组件。
可选的,请求并发总数可以是瞬时并发总数,那么基于步骤201-203的处理,API网关设备需要对请求标识进行及时的清理,相应的处理可以如下:在拒绝业务请求或业务请求处理结束后,API网关设备向中心计数组发送请求标识的清除通知,以使中心计数组更新目标业务组件的请求并发状态。
在实施中,在对业务组件的瞬时并发总数进行限制时,API网关设备需要及时对被拒绝的业务请求,以及处理结束的业务请求进行标识清除,以保证中心计数组所记录的请求标识均为当前正在执行的业务请求的请求标识。故而,在拒绝业务请求或业务请求处理结束后,API网关设备可以向中心计数组发送请求标识的清除通知,以使中心计数组及时更新目标业务组件的请求并发状态。
可选的,基于上述限制瞬时并发请求数的处理,中心计数组可以采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识及对应的请求并发总数,value值为请求标识构成的标识集合。
可选的,请求并发总数可以是固定时间窗内的总请求数,那么步骤201的处理可以如下:API网关设备确定业务请求的请求时间所属的目标时间窗,获取中心计数组记录的、目标时间窗内目标业务组件的请求并发总数;步骤202的处理可以如下:API网关设备判断请求并发总数,是否大于目标时间窗内目标业务组件的请求并发上限。
在实施中,API网关设备接收到指向目标业务组件的业务请求之后,可以先确定业务请求的请求时间所属的目标时间窗。此处,时间窗的设定可以是API网关集群的技术人员预先设定,并配置在API网关设备上的,如可以设定时间窗长度为5分钟,1小时可以分为12个时间窗。而基于时间窗的划分,中心计数组处可以针对不同业务组件、不同时间窗分别进行请求并发总数的统计。这样,API网关设备可以向中心计数组发送,携带有目标业务组件标识和目标时间窗标识的请求数查询消息。进而,中心计数组在接收到该请求数查询消息后,可以调取已记录的、目标时间窗内目标业务组件的请求并发总数,并将该请求并发总数反馈至API网关设备。
同样的,API网关设备的内存中也可以针对不同业务组件、不同时间窗分别设置请求并发上限。同一业务组件在不同时间窗内的请求并发上限可以相同也可以不同,具体可以由业务提供方自行设置。这样,API网关设备在获取到请求并发总数之后,可以将上述请求并发总数与目标时间窗内目标业务组件的请求并发上限进行比较。
可选的,基于上述限制固定时间窗内的总请求数的处理,中心计数组可以采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识、时间窗标识及对应的请求并发总数,value值为请求标识及对应的时间戳构成的标识集合。
可选的,请求并发总数可以是预设历史时长内的总请求数,那么步骤201的处理可以如下:API网关设备根据业务请求的请求时间,获取中心计数组记录的、预设历史时长内目标业务组件的请求并发总数;步骤202的处理可以如下: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网关设备判断请求并发总数,是否大于目标业务组件的请求并发上限;如果大于,API网关设备则拒绝业务请求,否则将业务请求发送至目标业务组件对应的API接口。这样,通过API网关集群来对业务组件进行流量控制,并利用中心计数组来统一记录业务组件的请求并发总数,后端业务组件可以只关注自身业务实现,将业务组件的可用性、流量控制等非业务问题交由API网关设备保证,从而可以大幅减轻业务组件负载压力,减少设备资源的浪费,同时便于业务组件的设计研发以及升级维护。
基于相同的技术构思,本发明实施例还提供了一种基于API网关设备的流量控制系统,所述系统包含中心计数组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述API网关设备,用于:
接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;
判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
可选的,所述API网关设备,还用于:
生成所述业务请求的请求标识,并向所述中心计数组上报所述请求标识,以使所述中心计数组更新所述目标业务组件的请求并发状态。
可选的,所述API网关设备,还用于:
在拒绝所述业务请求或所述业务请求处理结束后,向所述中心计数组发送所述请求标识的清除通知,以使所述中心计数组更新所述目标业务组件的请求并发状态。
可选的,所述中心计数组采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识及对应的请求并发总数,value值为请求标识构成的标识集合。
可选的,所述API网关设备,具体用于:
确定所述业务请求的请求时间所属的目标时间窗,获取所述中心计数组记录的、所述目标时间窗内所述目标业务组件的请求并发总数;
判断所述请求并发总数,是否大于所述目标时间窗内所述目标业务组件的请求并发上限。
可选的,所述中心计数组采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识、时间窗标识及对应的请求并发总数,value值为请求标识及对应的时间戳构成的标识集合。
可选的,所述API网关设备,具体用于:
根据所述业务请求的请求时间,获取所述中心计数组记录的、预设历史时长内所述目标业务组件的请求并发总数;
判断所述请求并发总数,是否大于所述预设历史时长对应的所述目标业务组件的请求并发上限。
可选的,所述请求标识的有效时长为所述预设历史时长。
可选的,所述API网关设备,还用于:
定期检测所述中心计数组的健康度;
当所述健康度低于预设阈值时,在本地记录各个业务组件的请求并发总数;
当接收到指向目标业务组件的业务请求时,判断本地记录的目标业务组件的请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
可选的,所述API网关设备,还用于:
当所述健康度大于预设阈值时,将本地记录的请求并发总数同步至所述中心计数组。
本发明实施例中,API网关设备接收指向目标业务组件的业务请求,获取中心计数组记录的目标业务组件的请求并发总数;API网关设备判断请求并发总数,是否大于目标业务组件的请求并发上限;如果大于,API网关设备则拒绝业务请求,否则将业务请求发送至目标业务组件对应的API接口。这样,通过API网关集群来对业务组件进行流量控制,并利用中心计数组来统一记录业务组件的请求并发总数,后端业务组件可以只关注自身业务实现,将业务组件的可用性、流量控制等非业务问题交由API网关设备保证,从而可以大幅减轻业务组件负载压力,减少设备资源的浪费,同时便于业务组件的设计研发以及升级维护。
本申请一个实施方式还提供一种中心服务器,所述中心服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的节点流量的恢复方法。
本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对系统和中心服务器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
本领域内的技术人员应明白,本发明的实施方式可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施方式而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种基于API网关设备的流量控制方法,其特征在于,所述方法应用于API网关集群,所述API网关集群包含中心计数组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述方法包括:
所述API网关设备接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;
所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,所述API网关设备则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
2.根据权利要求1所述的方法,其特征在于,所述API网关设备获取所述中心计数组记录的所述目标业务组件的请求并发总数之前,还包括:
所述API网关设备生成所述业务请求的请求标识,并向所述中心计数组上报所述请求标识,以使所述中心计数组更新所述目标业务组件的请求并发状态。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在拒绝所述业务请求或所述业务请求处理结束后,所述API网关设备向所述中心计数组发送所述请求标识的清除通知,以使所述中心计数组更新所述目标业务组件的请求并发状态。
4.根据权利要求2或3所述的方法,其特征在于,所述中心计数组采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识及对应的请求并发总数,value值为请求标识构成的标识集合。
5.根据权利要求2所述的方法,其特征在于,所述API网关设备获取所述中心计数组记录的所述目标业务组件的请求并发总数,包括:
所述API网关设备确定所述业务请求的请求时间所属的目标时间窗,获取所述中心计数组记录的、所述目标时间窗内所述目标业务组件的请求并发总数;
所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限,包括:
所述API网关设备判断所述请求并发总数,是否大于所述目标时间窗内所述目标业务组件的请求并发上限。
6.根据权利要求5所述的方法,其特征在于,所述中心计数组采用key-value的形式记录各个业务组件的请求并发状态,其中,key值包含业务组件标识、时间窗标识及对应的请求并发总数,value值为请求标识及对应的时间戳构成的标识集合。
7.根据权利要求2所述的方法,其特征在于,所述API网关设备获取所述中心计数组记录的所述目标业务组件的请求并发总数,包括:
所述API网关设备根据所述业务请求的请求时间,获取所述中心计数组记录的、预设历史时长内所述目标业务组件的请求并发总数;
所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限,包括:
所述API网关设备判断所述请求并发总数,是否大于所述预设历史时长对应的所述目标业务组件的请求并发上限;
其中,所述请求标识的有效时长为所述预设历史时长。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述API网关设备定期检测所述中心计数组的健康度;
当所述健康度低于预设阈值时,所述API网关设备在本地记录各个业务组件的请求并发总数;
当接收到指向目标业务组件的业务请求时,所述API网关设备判断本地记录的目标业务组件的请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,所述API网关设备则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述健康度大于预设阈值时,所述API网关设备将本地记录的请求并发总数同步至所述中心计数组。
10.一种基于API网关设备的流量控制系统,其特征在于,所述系统包含中心计数组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述API网关设备,用于:
接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;
判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限;
如果大于,则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应的API接口。
11.一种中心服务器,其特征在于,所述中心服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290390.6A CN111600807A (zh) | 2020-04-14 | 2020-04-14 | 一种基于api网关设备的流量控制方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010290390.6A CN111600807A (zh) | 2020-04-14 | 2020-04-14 | 一种基于api网关设备的流量控制方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111600807A true CN111600807A (zh) | 2020-08-28 |
Family
ID=72181905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010290390.6A Pending CN111600807A (zh) | 2020-04-14 | 2020-04-14 | 一种基于api网关设备的流量控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600807A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350950A (zh) * | 2020-10-28 | 2021-02-09 | 北京中电普华信息技术有限公司 | 一种请求消息控制方法及装置 |
CN112437006A (zh) * | 2020-11-20 | 2021-03-02 | 北京百度网讯科技有限公司 | 基于api网关的请求控制方法、装置、电子设备和存储介质 |
CN112463366A (zh) * | 2020-11-19 | 2021-03-09 | 上海交通大学 | 面向云原生的微服务自动扩缩容和自动熔断方法及系统 |
CN114745329A (zh) * | 2022-03-30 | 2022-07-12 | 青岛海尔科技有限公司 | 流量控制方法和装置、存储介质及电子装置 |
CN116489090A (zh) * | 2023-06-16 | 2023-07-25 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160292017A1 (en) * | 2013-12-13 | 2016-10-06 | Beijing Jingdong Shangke Information Technology Co, Ltd. | Traffic control method and system |
CN108306874A (zh) * | 2018-01-29 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 服务接口访问限流方法及装置 |
CN108566304A (zh) * | 2018-04-26 | 2018-09-21 | 努比亚技术有限公司 | 接口控制方法、电子设备及计算机可读存储介质 |
CN109067728A (zh) * | 2018-07-25 | 2018-12-21 | 苏州科达科技股份有限公司 | 应用程序接口的访问控制方法、装置、服务器及存储介质 |
CN109218212A (zh) * | 2018-09-03 | 2019-01-15 | 四川长虹电器股份有限公司 | 一种通过api网关对流量进行限制的方法 |
CN109587069A (zh) * | 2018-12-11 | 2019-04-05 | 北京首汽智行科技有限公司 | 一种基于api网关的限流方法及系统 |
CN110493067A (zh) * | 2019-09-05 | 2019-11-22 | 中国银联股份有限公司 | 一种api网关服务更新的方法及装置 |
CN110944044A (zh) * | 2019-11-20 | 2020-03-31 | 广州市品高软件股份有限公司 | 一种分布式api网关系统及其实现方法 |
-
2020
- 2020-04-14 CN CN202010290390.6A patent/CN111600807A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160292017A1 (en) * | 2013-12-13 | 2016-10-06 | Beijing Jingdong Shangke Information Technology Co, Ltd. | Traffic control method and system |
CN108306874A (zh) * | 2018-01-29 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 服务接口访问限流方法及装置 |
CN108566304A (zh) * | 2018-04-26 | 2018-09-21 | 努比亚技术有限公司 | 接口控制方法、电子设备及计算机可读存储介质 |
CN109067728A (zh) * | 2018-07-25 | 2018-12-21 | 苏州科达科技股份有限公司 | 应用程序接口的访问控制方法、装置、服务器及存储介质 |
CN109218212A (zh) * | 2018-09-03 | 2019-01-15 | 四川长虹电器股份有限公司 | 一种通过api网关对流量进行限制的方法 |
CN109587069A (zh) * | 2018-12-11 | 2019-04-05 | 北京首汽智行科技有限公司 | 一种基于api网关的限流方法及系统 |
CN110493067A (zh) * | 2019-09-05 | 2019-11-22 | 中国银联股份有限公司 | 一种api网关服务更新的方法及装置 |
CN110944044A (zh) * | 2019-11-20 | 2020-03-31 | 广州市品高软件股份有限公司 | 一种分布式api网关系统及其实现方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350950A (zh) * | 2020-10-28 | 2021-02-09 | 北京中电普华信息技术有限公司 | 一种请求消息控制方法及装置 |
CN112463366A (zh) * | 2020-11-19 | 2021-03-09 | 上海交通大学 | 面向云原生的微服务自动扩缩容和自动熔断方法及系统 |
CN112463366B (zh) * | 2020-11-19 | 2022-12-06 | 上海交通大学 | 面向云原生的微服务自动扩缩容和自动熔断方法及系统 |
CN112437006A (zh) * | 2020-11-20 | 2021-03-02 | 北京百度网讯科技有限公司 | 基于api网关的请求控制方法、装置、电子设备和存储介质 |
CN112437006B (zh) * | 2020-11-20 | 2023-03-24 | 北京百度网讯科技有限公司 | 基于api网关的请求控制方法、装置、电子设备和存储介质 |
CN114745329A (zh) * | 2022-03-30 | 2022-07-12 | 青岛海尔科技有限公司 | 流量控制方法和装置、存储介质及电子装置 |
CN114745329B (zh) * | 2022-03-30 | 2024-03-22 | 青岛海尔科技有限公司 | 流量控制方法和装置、存储介质及电子装置 |
CN116489090A (zh) * | 2023-06-16 | 2023-07-25 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
CN116489090B (zh) * | 2023-06-16 | 2023-10-24 | 北京百度网讯科技有限公司 | 流量控制方法、装置、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600807A (zh) | 一种基于api网关设备的流量控制方法和系统 | |
EP3279794B1 (en) | Time-based node election method and apparatus | |
TWI685226B (zh) | 分散式環境下的服務定址方法及裝置 | |
WO2017097130A1 (zh) | 一种分布式存储系统的服务节点切换方法和装置 | |
US9553998B2 (en) | Sharing group notification | |
GB2587690A (en) | Service experience analytics for network slice instance | |
CN109412966B (zh) | 一种大规模日志传输方法、装置及系统 | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
CN103383689A (zh) | 一种服务进程故障检测方法、装置及服务节点 | |
CN110888889A (zh) | 一种数据信息更新方法、装置及设备 | |
CN101192992A (zh) | 用于电信网管系统的性能数据补充采集系统及方法 | |
CN114356557B (zh) | 一种集群扩容方法及装置 | |
CN112416594A (zh) | 一种微服务分配方法、电子设备和计算机存储介质 | |
CN114745358A (zh) | 负载均衡服务中的ip地址管理方法、系统及控制器 | |
EP3570169B1 (en) | Method and system for processing device failure | |
CN112559565B (zh) | 一种异常检测方法、系统及装置 | |
KR20200018343A (ko) | Nwdaf를 이용한 페이징 실패 예측 방법 및 페이징 실패 예측 방법을 실행하는 페이징 실패 예측 장치 | |
CN114003377A (zh) | 一种基于es服务的内存熔断方法、装置、设备及可读介质 | |
CN110290210B (zh) | 接口调用系统中不同接口流量比例自动调配方法及装置 | |
US10277484B2 (en) | Self organizing network event reporting | |
EP2819453B1 (en) | Method and apparatus for evaluating events in a telecommunication network | |
CN112887224A (zh) | 流量调度处理方法、装置、电子设备及存储介质 | |
CN113301173A (zh) | 域名更新系统及方法、消息转发方法、服务器 | |
CN113568781B (zh) | 一种数据库错误处理方法、装置及数据库集群访问系统 | |
CN105763508B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200828 |
|
RJ01 | Rejection of invention patent application after publication |