
技术摘要:
本发明公开了一种基于API网关设备的流量控制方法和系统,属于网络通信技术领域。所述方法包括:所述API网关设备接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组件的请求并发总数;所述API网关设备判断所述请求并发总数,是否大于所述目标业务 全部
背景技术:
随着网络通信技术的不断进步,网络业务得到了快速大幅的发展,相应的,业务请 求的并发量急剧增加。为了应对大量并发的业务请求,当并发的请求数量超过业务组件的 负载上限时,业务服务方普遍会对业务请求进行限流,以保护后端业务组件的正常运行,避 免后端被过高的负载冲垮。 具体过程中,业务服务方可以在各个业务组件上设置请求并发上限。业务组件在 对外提供业务服务时,可以记录当前业务组件的请求并发总数。当接收到新的业务请求时, 业务组件可以查看上述请求并发总数,判断是否已达到预设的请求并发上限。若达到,业务 组件则可以等待已接入的请求处理完毕后,再开始处理该业务请求;若未达到,业务组件则 可以直接处理该业务请求。 在实现本发明的过程中,发明人发现现有技术至少存在以下问题: 由每个业务组件独立对业务请求进行流量控制,一方面会造成业务组件的功能代 码量大幅增加,不便于前期的设计研发以及后期的升级维护;另一方面,每个业务组件均需 要消耗一定的设备资源进行流量控制,不仅会造成设备资源的大量浪费,也会对设备性能 产生影响。
技术实现要素:
为了解决现有技术的问题,本发明实施例提供了一种基于API网关设备的流量控 制方法和系统。所述技术方案如下: 第一方面,提供了一种基于API网关设备的流量控制方法,所述方法应用于API网 关集群,所述API网关集群包含中心计数组和分布式部署的多个API网关设备,每个API网关 设备对应至少一个业务组件,所述方法包括: 所述API网关设备接收指向目标业务组件的业务请求,获取所述中心计数组记录 的所述目标业务组件的请求并发总数; 所述API网关设备判断所述请求并发总数,是否大于所述目标业务组件的请求并 发上限; 如果大于,所述API网关设备则拒绝所述业务请求,否则将所述业务请求发送至目 标业务组件对应的API接口。 第二方面,提供了一种基于API网关设备的流量控制系统,所述系统包含中心计数 组和分布式部署的多个API网关设备,每个API网关设备对应至少一个业务组件,所述API网 关设备,用于: 接收指向目标业务组件的业务请求,获取所述中心计数组记录的所述目标业务组 4 CN 111600807 A 说 明 书 2/8 页 件的请求并发总数; 判断所述请求并发总数,是否大于所述目标业务组件的请求并发上限; 如果大于,则拒绝所述业务请求,否则将所述业务请求发送至目标业务组件对应 的API接口。 本发明实施例提供的技术方案带来的有益效果是: 本发明实施例中,API网关设备接收指向目标业务组件的业务请求,获取中心计数 组记录的目标业务组件的请求并发总数;API网关设备判断请求并发总数,是否大于目标业 务组件的请求并发上限;如果大于,API网关设备则拒绝业务请求,否则将业务请求发送至 目标业务组件对应的API接口。这样,通过API网关集群来对业务组件进行流量控制,并利用 中心计数组来统一记录业务组件的请求并发总数,后端业务组件可以只关注自身业务实 现,将业务组件的可用性、流量控制等非业务问题交由API网关设备保证,从而可以大幅减 轻业务组件负载压力,减少设备资源的浪费,同时便于业务组件的设计研发以及升级维护。 附图说明 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。 图1是本发明实施例提供的一种API网关集群的网络框架示意图; 图2是本发明实施例提供的一种基于API网关设备的流量控制方法流程图。