CN111386676B - 应用编程接口api网关集群的控制方法和api网关集群 - Google Patents

应用编程接口api网关集群的控制方法和api网关集群 Download PDF

Info

Publication number
CN111386676B
CN111386676B CN201880076418.7A CN201880076418A CN111386676B CN 111386676 B CN111386676 B CN 111386676B CN 201880076418 A CN201880076418 A CN 201880076418A CN 111386676 B CN111386676 B CN 111386676B
Authority
CN
China
Prior art keywords
api
cluster
api gateway
service
flow control
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.)
Active
Application number
CN201880076418.7A
Other languages
English (en)
Other versions
CN111386676A (zh
Inventor
熊文辉
黄泽艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111386676A publication Critical patent/CN111386676A/zh
Application granted granted Critical
Publication of CN111386676B publication Critical patent/CN111386676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/065Generation of reports related to network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请提供一种API网关集群的控制方法和API网关集群,用以提升API网关集群的控制精度。该方法包括:API网关集群确定单位时间内接收的API请求超过流量控制参数;获取API网关集群的负载参数和服务集群的负载参数;根据所述API网关集群的负载参数,确定所述API网关集群拥塞,并根据所述服务集群的负载参数,确定所述服务集群不拥塞后;扩容所述API网关集群,从而提升API网关集群的控制精度。

Description

应用编程接口API网关集群的控制方法和API网关集群
技术领域
本申请涉及网络技术,尤其涉及一种API网关集群的控制方法和API网关集群。
背景技术
应用编程接口(Application Programming Interface,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网关集群的控制方法的精度,保证了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网关集群和服务集群的工作效率。
另一方面,本发明实施例提供了一种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网关控制器的指示在所述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请求访问服务集群中的服务;
确定所述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网关集群不拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
更新所述流量控制参数。
附图说明
图1为本发明实施例提供的一种服务提供系统的架构示意图;
图2为本发明实施例提供的另一种服务提供系统的架构示意图;
图3为本发明实施例提供的一种API网关集群的控制方法的流程示意图;
图4为本发明实施例提供的另一种API网关集群的控制方法的流程示意图;
图5为本发明实施例提供的服务提供系统的结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图1为本发明实施例提供的一种服务提供系统的架构示意图。如图1所示,服务提供系统100包括API网关集群101和服务集群102。
其中,API网关集群101作为服务提供系统100的对外接口,与至少一个应用103连接。API网关集群101接收各应用103发送的API请求,并将接收到的API请求转发至服务集群102。每个应用103属于一个用户。
API请求,指应用103为访问服务集群102中的服务108的API而生成的请求。例如,服务1的开发者将访问服务1的API发布在API网关集群101上,应用103生成该API对应的API请求,并通过该API请求访问服务1。API请求携带有用户标识、API标识、发送方的地址信息等请求参数。各个应用103为了访问相同API而生成的API请求均属于一种的API请求,因此相同种类的API请求的用户标识、发送方的地址信息等请求参数可能不同,但相同种类的API请求的API标识相同,API标识也称为API名。API请求X,指代携带的API标识为X的API请求。各应用103与API网关集群101之间的接口可以采用表述性状态传递(RepresentationalState Transfer,REST)风格或软件开发工具包(Software Development Kit,SDK)中提供的接口。
API网关集群101包括至少一个API网关控制器104和至少一个API路由装置105。
API路由装置105用于将API请求转发至服务集群102,例如确定API请求的路由路径。当API网关控制器104判断应该拒绝响应API请求的情况下,API路由装置105用于拦截API请求,并将拒绝响应发送至应用103。API路由装置105还用于按照黑名单拦截API请求,生成拒绝响应,并将拒绝响应发送至应用103。API网关控制器104用于对API请求进行处理,以及管理和控制各API路由装置105。
图2为本发明实施例提供的另一种服务提供系统的架构示意图,为确保API网关集群101的稳定运行,API网关集群101可包括至少两个API网关控制器104。
各应用103与API网关集群101之间可设置至少一个API网关负载均衡装置106。API网关负载均衡装置106用于将接收到的API请求的均衡分配至各个API路由装置105,以实现各个API路由装置105的之间的负载均衡。
每个API网关控制器104设置有一个数据库201,不同API网关控制器104的数据库201保持同步,以保证各个API网关控制器104能够协同处理API请求。或者,API网关集群101内的API网关控制器104共享一个数据库201,该共享的数据库201独立于任一API网关控制器104设置,每个API网关控制器104运行时访问/改写该共享的数据库201,以保证各个API网关控制器104运行时采用的各类参数和信息同步。
用户可通过用户管理界面107向API网关集群101配置流量控制参数。流量控制参数存储在数据库201中。流量控制参数包括:用户级别的流量控制参数和/或API请求级别的流量控制参数。
用户级别的流量控制参数针对用户粒度进行设置,例如,API网关集群101能够处理的一个用户在单位时间内发出的各种API请求的总数的上限值。此处的各种API请求,可以为该用户发出的全部API请求,或者部分API请求。
例如,用户1-每分钟-5000,指示API网关集群101每分钟最多处理5000个用户1发出的API请求。
又例如,用户1-API请求1、API请求2-每分钟-4000次,指示API网关集群101每分钟最多处理4000个用户1发出的API请求1和API请求2。
又例如,用户-每分钟-3000次,指示API网关集群101每分钟最多处理3000个某一用户发出的API请求,该用户可以为接入服务提供系统100的任一用户。
API级别的流量控制参数针对API粒度进行设置。例如,API网关集群101能够处理的单个用户单位时间内发出的一种API请求的数量的上限值。或API网关集群101能够处理的多个用户单位时间内发出的一种API请求的总数的上限值。此处的多个用户,可以为接入服务提供系统100的全部用户或者部分用户。
例如,API请求1-单个用户-每分钟-5000次,指示API网关集群101每分钟最多处理5000个单个用户发出的API请求1。
再例如,API请求1-每分钟-4000,指示API网关集群101每分钟最多处理4000个任意用户发送的API请求1,该任意用户可以为接入服务提供系统100的全部用户中的任意一个或多个。
以上单位时间可以设置为每分钟、每小时、每天或其他时间粒度。
服务集群102通过API网关集群101向应用103提供各类服务。服务集群102包括至少一个服务108,多个具有相同功能的服务可以为一类服务。例如服务1为一类服务,服务2为另一类服务。每一类服务中可以包括多个服务以均衡工作负载。
服务108为用户提供各种功能。以云服务为例,服务108可以为基础设施即服务(Infrastructure as a service,IaaS),例如虚拟机创建服务、容器创建服务。服务还可以为平台即服务(Platform as a service,PaaS),例如开发环境部署服务。服务108还可以为软件即服务(Software as a service,SaaS),例如办公软件服务,如
Figure GDA0003063247960000061
Office365。服务108运行于服务集群102中,具体可以为物理计算机或者虚拟机或者容器。服务108通过物理计算机或者虚拟机或者容器上运行的软件模块,例如应用,向用户提供功能。同一类服务可以分布式的部署在不同的物理计算机上,或部署在不同的物理计算机上运行的虚拟机或容器上,以提升服务集群102的容灾能力。
服务108接收API网关集群101转发的API请求,根据API请求执行相应的动作。服务集群102与API网关集群101之间设置有至少一个服务负载均衡装置109。服务负载均衡装置109将目标为同一类服务的API请求均衡的分配至该类服务的每个服务上,以实现该类服务中各个服务的之间的负载均衡。
API网关控制器104、API路由装置105、API网关负载均衡装置106、服务108和服务负载均衡装置109之间可通过基于安全套接层的超文本传输协议(Hyper Text TransferProtocol over Secure Socket Layer,Https)进行接口通信。
API网关控制器104包括:数据库201、统计模块202、鉴权模块203、安全规则模块204、静态流量控制模块205和动态流量控制模块206。以上模块中任意两个或者多个也可以组合为一个模块。
其中,数据库201中存储有安全规则信息、鉴权信息,流量控制参数以及统计信息。安全规则信息包括针对特定用户和/或特定IP地址设置的安全规则。鉴权信息包括合法注册的用户的信息,用于为用户发出的API请求鉴权。统计信息包括服务集群102中各个服务108发布在API网关集群101上的API的信息,例如API标识,以及各个API请求的统计信息,例如API网关集群101处理API请求的种类、数量、效率等。
统计模块202用于统计并记录API请求中携带的API标识,用户标识等信息,并将统计信息存入数据库201。例如,API网关集群101单位时间内处理了多少个API请求1,这些API请求1分别由哪个用户发送;API网关集群101单位时间内处理了多少个用户1发出的API请求等。统计模块202通过API请求中携带的用户标识确定不同用户发出的API请求的数量,根据API请求中携带的API标识确定接收到的不同API请求的数量。
鉴权模块203,用于在API路由装置105接收到API请求时,对发送API请求的用户的身份进行鉴别,确定发送API请求的用户是否为合法的注册用户,当用户不合法时,生成针对该API请求的拒绝响应,并通过API路由装置105将拒绝响应发送至发出该API请求的应用103。鉴权模块203在进行用户鉴别时,调用存储在数据库201中的鉴权信息,确定数据库201中的合法注册的鉴权信息中是否包含发送API请求的用户,若不包括则确定该API请求非法。
安全规则模块204,用于调用存储在数据库201中的安全规则信息,确定发送API请求的用户是否为特定用户或发送API请求的应用103的IP地址是否为特定IP地址,若是则根据对应的安全规则处理该API请求。
静态流量控制模块205,用于根据流量控制参数和统计信息,确定是否进行流量控制。当静态流量控制模块205确定单位时间内某个用户发出的API请求的数量超出该用户对应的用户级别的流量控制参数时,静态流量控制模块205进行流量控制,即生成拒绝响应,并通过API路由装置105将拒绝响应发送至用户的应用103。当静态流量控制模块205确定单位时间内处理的一类API请求的数量超出该API请求对应的API请求级别的流量控制参数时,生成拒绝响应,并通过API路由装置105将拒绝响应发送至发出该API请求的应用103。
通过设置流量控制参数,对用户发送的API请求进行流量控制,避免了过多的API请求可能超出了API网关集群101或服务集群102的处理能力,进而会影响服务提供系统100的工作效率乃至稳定性,保证了API网关集群101的稳定运行。
实际运行中,API网关集群101和服务集群102的实际处理能力变化频繁,若仅采用静态流量控制模块205对流量进行控制,控制精度较低,影响服务集群1002的工作效率。为避免该问题,本发明实施例提供的API网关控制器104中还包括动态流量控制模块206。
动态流量控制模块206,用于在静态流量控制模块205检测到需进行流量控制时,根据API路由装置105和服务集群102的负载参数,确定API路由装置105和服务集群102是否拥塞,并根据API路由装置105和服务集群102的拥塞状况确定对应的流量控制方式。例如,在API路由装置105拥塞时,动态流量控制模块206指示在API网关集群101中增加新的API路由装置105,以缓解API路由装置105的拥塞。在服务集群102拥塞时,动态流量控制模块206设置黑名单,API路由装置105根据该黑名单拒绝API请求。动态流量控制模块206还可在API网关集群和服务集群均不拥塞时修改流量控制参数。同时,动态流量控制模块206,还可以在确定API路由装置105不拥塞时,指示在API网关集群101中减少API路由装置105,以提升API网关集群的利用率。
动态流量控制模块206根据API网关集群101中API路由装置105和/或服务集群102的负载状况,在API网关集群101内设置黑名单,对API路由装置105进行扩容或者减容,或对流量控制参数进行调整,实现了更精细的流量控制,提升了服务集群102的工作效率和稳定性。
其中,服务集群100中的各个服务、各模块、数据库以及装置可以单独部署在不同的物理机、虚拟机或容器上,也可以任意合并部署在相同的物理机、虚拟机或容器上。每个装置、服务、或数据库可以为一个实例。服务提供系统100内存储有不同类型的操作系统镜像,一种操作系统镜像用于建立一种类型实例。
下面结合上述图1和图2,介绍本发明实施例提供的API网关集群的控制方法。
图3为本发明实施例提供的一种API网关集群的控制方法的流程示意图。该方法可以应用于图1或图2所示的API网关集群101中,包括:
S301,应用103将API请求发送至API网关负载均衡装置106。
S302,API网关负载均衡装置106将API请求发送至API路由装置105。
应用103将接收到的API请求发送至API网关负载均衡装置106。API网关负载均衡装置106对接收到的API请求进行负载均衡,将API请求分发至不同的API路由装置105。
S303,API路由装置105将API请求携带的请求参数发送至API网关控制器104。
API路由装置105可以提取API请求携带的请求参数,并将请求参数发送至API网关控制器104。API路由装置105也可以将API请求整体发送至API网关控制器104,由API网关控制器提取请求参数
S303中,API网关控制器104获取请求参数后,首先通过鉴权模块203和安全规则模块204对该API请求的请求参数进行过滤。如果该API请求无法通过鉴权或者安全规则的匹配,则API网关控制器104生成拒绝响应并通过API路由装置105将拒绝响应发送至应用103,结束流程。如果该API请求能够通过鉴权和安全规则的匹配,则继续执行以下步骤。
S304,统计模块202按照流量控制参数的统计请求参数,并将统计出来的统计信息存入数据库201。具体的,可以以API请求为粒度和/或以用户粒度进行统计。统计的维度参考流量控制参数的设计,例如:
用户1-当前单位时间内的统计数量;
API请求1-当前单位时间内的统计数量;
API请求1-用户1-当前单位时间内的统计数量;
API请求1-用户2-当前单位时间内的统计数量。
第一行用于统计用户1在当前单位时间内(例如最近一分钟内)发出的API请求的数量,针对用户级别的流量控制参数;
第二行用于统计当前单位时间内全部用户发出的API请求1的数量,针对API请求级别的流量控制参数;
第三行和第四行用于统计当前单位时间内各个用户发出的API请求1的数量,针对API请求级别的流量控制参数。
S305,静态流量控制模块205根据统计信息和流量控制参数,确定有统计信息超出或临近超出流量控制参数。
S306,静态流量控制模块205生成流量控制指示信息,并将流量控制指示信息发送至动态流量控制模块206。
静态流量控制模块205从数据库201中获取流量控制参数和统计参数,将两者进行对比。当设置了多种级别/多条的流量控制参数的时候,将统计参数和流量控制参数分别进行对比。静态流量控制模块205确定某一或多个用户发出的API请求的数量超出或临近超出为该用户设置的用户级别的流量控制参数,或确定API网关集群101接收的一种或多种API请求的数量超出或临近超出API请求级别的流量控制参数,生成流量控制指示信息,并将流量控制指示信息发送至动态流量控制模块206。
例如,统计参数为:
用户1-5980;
API请求1-4003;
API请求1-用户1-1800;
API请求1-用户2-500。
流量控制参数为:
用户1-6000;
API请求1-每分钟-4000;
API请求1-用户-1700。
可以看出,第二条和第三条流量控制参数均被超出,第一条流量控制参数临近被超出,因此,静态流量控制模块205生成流量控制指示信息。由于流量控制指示信息的生效需要一定时间,为避免流量控制参数被进一步超出,静态流量控制模块205可以在临近超出流量控制参数的情况下就生成流量控制指示信息。
S307,动态流量控制模块206获取服务集群102的负载参数,并获取API路由装置105的负载参数。
两种负载参数的获取顺序可以调换。S307的执行可以不在S306后,动态流量控制模块206可以定时收集服务集群102和API路由装置105的负载参数。其中,负载参数可以为虚拟机或容器或物理计算机的处理器占用率、内存占用率、网络流入流出速率、带宽占用率中的至少一项。
S308,动态流量控制模块206将服务集群102的负载参数和API路由装置105的负载参数分别和预设的第一阈值和预设的第二阈值进行对比,以判断服务集群102是否拥塞以及API路由装置105是否拥塞。当服务集群102的负载参数超出第一阈值时,判断服务集群102拥塞。当API路由装置105的负载参数超出第二阈值时,判断API路由装置105拥塞。第一阈值和第二阈值也可以为相同的阈值。
S307和S308的执行顺序可以灵活设计,可以先获取一种负载参数,对一个集群/装置是否拥塞进行判断;再获取另一种负载参数,对另一个集群/装置是否拥塞进行判断。无须先收集完两种负载参数,再判断服务集群102和API路由装置105是否拥塞。例如,可以获取服务集群102的负载参数后,判断服务集群102是否拥塞;再获取API路由装置105的负载参数,判断API路由装置105是否拥塞。
如果S305中,静态流量控制模块205确定某一种API请求的统计信息超出了API请求级别的流量控制参数时,动态流量控制模块206可以获取该API请求的目的服务的负载参数,并通过判断该目的服务的负载参数是否超出第一阈值确定服务集群102是否拥塞。当API请求级别的流量控制参数被超出时,可能只有某一API请求的目的服务(一类服务)拥塞,其余种类的服务并不拥塞,这种场景下获取该API请求的目的服务的负载参数,能够更精准的表现当前服务集群102的拥塞状况。
根据S308中动态流量控制模块206的判断结果,可能出现以下4个场景。4个场景之间不互斥,有可能出现同时符合2个或多个场景的情况,这种情况下,可以并行或顺序执行各个场景。
场景1:动态流量控制模块206确定API路由装置105拥塞,服务集群102不拥塞。
此种场景下,服务集群102的处理能力未得到充分利用,而API路由装置105拥塞则指示API网关集群101接收到的API请求数量过多,超出了API网关集群101的处理能力。因此,造成了服务集群102的资源浪费。为避免服务集群102的资源浪费,API网关控制器104在API网关集群101对API路由装置105进行扩容,即创建新的API路由装置105,由于API网关集群101中增加了新的API路由装置,新加入的API路由装置105可以减少其他API路由装置105的负担,从而提高了API网关集群101的处理能力,使得API网关集群101的处理能力与服务集群102的处理能力匹配,避免了服务集群102的资源浪费。
具体包括:
S3091,API网关控制器104扩容API路由装置105。
API网关控制器104生成扩容指令,根据该扩容指令建立新的API路由装置105,并将新建的API路由装置105加入到原有的API路由装置105集群内集中管理。API网关控制器104可以将该扩容指令发送至服务提供系统的管理面,由管理面分配新的物理计算机/虚拟机/容器,并获取API路由装置105对应的操作系统镜像,在分配的物理计算机/虚拟机/容器上建立新的API路由装置105。
S3092,动态流量控制模块向API网关负载均衡装置106发送扩容通知消息。
API网关控制器104通知API网关负载均衡装置106新API路由装置105的建立,例如可以将新建的API路由装置105的地址信息携带在扩容通知信息中发送给API网关负载均衡装置106,以供API网关负载均衡装置106将新建的API路由装置105的地址信息加入到负载均衡表中。API网关负载均衡装置106接收的API请求会均衡分配给负载均衡表内的各个API路由装置105。
场景2:动态流量控制模块206确定服务集群102拥塞。
此种场景下,为避免服务集群102拥塞时可能导致的安全隐患,动态流量控制模块206生成黑名单,使得API路由装置105根据黑名单拒绝部分对应的API请求,减少服务集群102的负荷,提升了服务集群102的安全性。
S3101,动态流量控制模块206生成黑名单并将黑名单发送至API路由装置105。
动态流量控制模块206生成的黑名单包括用户级别的黑名单和/或API请求级别的黑名单。用户级别的黑名单中每条信息包括用户标识以及有效时间。API请求级别的黑名单中每条信息包括了API标识以及有效时间。有效时间指示每条信息在黑名单中的存在时间。
若静态流量控制模块205确定API网关集群101接收的某一用户发出的API请求的数量超出了为该用户设置的用户级别的流量控制参数,则在流量控制指示信息中携带该用户的用户标识,动态流量控制模块206向用户级别的黑名单中添加该用户的用户标识。
若静态流量控制模块205确定API网关集群101接收的一种API请求的数量超出了API请求级别的流量控制参数,则在流量控制指示信息中携带该API请求的API标识,动态流量控制模块206向API请求级别的黑名单中添加该API标识。
S3102,动态流量控制模块206生成告警信息,并将告警信息通过API路由装置105发送至服务集群102。其中,告警信息指示服务集群102的处理能力不足。
服务集群102可以根据该告警信息进行扩容。
S3103,API路由装置105发送拒绝响应至应用103。
API路由装置105拒绝处理属于用户级别的黑名单中的用户发出的API请求,生成拒绝响应,并将拒绝响应发送至发出该API请求的应用103。或,API路由装置105拒绝处理属于API请求级别的黑名单中的API请求,生成拒绝响应,并将拒绝响应发送至发出该API请求的应用103。
场景3:动态流量控制模块206确定API路由装置105与服务集群102均不拥塞。
当服务集群102和API网关集群101均不拥塞时,API网关集群101和服务集群102的处理能力均存在资源浪费,说明现有流量控制参数设置不合理。
S3111,动态流量控制模块206更新流量控制参数。将更新的流量控制参数存入数据库201中,替代原流量控制参数。
动态流量控制模块206可以根据API网关集群101和服务集群102的负载参数获取新的流量控制参数,并采用新的流量控制参数更新原流量控制参数。或者动态流量控制模块206按照预设的比例增大原流量控制参数以获取新的流量控制参数。或者动态流量控制模块206将预设的参数和原流量控制参数之和作为新的流量控制参数。
新的流量控制参数高于更新原预设流量控制参数,使得更多API请求可通过API网关集群101转发至服务集群102,避免了服务集群102的资源浪费。
S3112,API路由装置105将API请求发送至服务集群102。
更新流量控制参数之后,不再有统计信息超出/临近超出流量控制参数,API网关集群101不再拒绝该API请求,API路由装置将API请求发送至服务集群102。
场景4:动态流量控制模块206确定API路由装置105不拥塞。
当API网关集群101不拥塞时,API网关集群101的处理能力均在资源浪费。
S3121,API网关控制器104减容API路由装置105。
API网关控制器104删除一定数量的API路由装置105。
S3122,动态流量控制模块向API网关负载均衡装置发送减容通知消息。
API网关控制器104通知API网关负载均衡装置106删除API路由装置105。例如可以将被删除的API路由装置105的地址信息携带在减容通知消息中发送给API网关负载均衡装置106,以供API网关负载均衡装置106将删除的API路由装置105的地址信息从负载均衡表中删除,节省了服务提供系统100的能耗。
上述4种场景可以并行执行,例如场景2和场景4可以并行执行,场景3和场景4也可以并行执行。上述4种场景也可以按照一定的顺序串行执行。例如,执行完场景1后,API路由装置105和服务集群102均不再拥塞,则服务提供系统100可以执行场景3。再例如,执行完场景2一段时间后,API路由装置105和服务集群102均不再拥塞,则服务提供系统100可以执行场景3。
图4为本发明实施例提供的另一种API网关集群的控制方法的流程示意图。该方法同样可以应用于如图1和图2所示的API网关集群中。该方法的实施细节可以参考图3所示的方法。该方法包括:
S401,API网关控制器确定API网关集群接收到的API请求的数量是否超出流量控制参数;若是,则执行S402。
S402,API网关控制器获取API网关集群的负载参数和服务集群的负载参数。
API网关集群的负载参数,包括API路由装置的负载参数。
S403,API网关控制器根据服务集群的负载参数确定服务集群是否拥塞;若是,则执行S404;若否,则执行S405。
S404,API网关控制器生成黑名单,并将黑名单发送至API路由装置。
S405,API网关控制器根据API网关集群的负载参数确定API网关集群是否拥塞;若是,则执行S406;若否,则执行S407;
示例性的,根据API网关集群中各API路由装置所在的虚拟机或容器或物理计算机的负载参数是否高于预设阈值。若是,则确定API网关集群拥塞,执行S406;若否,则确定API网关集群不拥塞,执行S407。
S406、扩容API网关集群,即在API网关集群中增加API路由装置。
S407,更新流量控制参数。
可选的,在S402之后,该方法还包括:
S408、根据API网关集群的负载参数确定API网关集群是否拥塞;若否,则执行S409。若是,则执行根据服务集群的负载参数确定服务集群是否拥塞(如S403),如果服务集群拥塞,则生成黑名单(如S404),如果服务集群不拥塞,扩容API网关集群(如S406)。
S409、减容API网关集群,即在API网关集群中减少API路由装置。
图5为本发明实施例提供的服务提供系统的结构示意图。服务提供系统包括API网关集群和服务集群,API网关集群和服务集群间建立通信连接。API网关集群包括API网关控制器集群和API路由装置集群,API网关控制器集群和API路由装置集群间建立通信连接。
API网关控制器集群包括一个或者多个计算设备500。API路由装置集群包括一个或者多个计算设备600。服务集群包括一个或者多个计算设备700。
每个计算设备包括一个或多个处理器、通信接口和存储器。处理器、通信接口、和存储器可通过总线连接。处理器可以由一个或者多个通用处理器构成,例如中央处理器(Central Processing Unit,CPU)。存储器可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。通信接口可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他计算设备进行通信。
计算设备500的处理器501用于运行存储器504中的程序代码,实现统计模块、动态流量控制模块、静态流量控制模块、安全规则模块、鉴权模块。存储器504中还存储有数据库。API网关控制器集群中的每个计算设备500可以运行统计模块、动态流量控制模块、静态流量控制模块、安全规则模块、鉴权模块、数据库中的任意一个或多个。例如可以在计算设备500上运行一台或多台虚拟机或容器,每台虚拟机或容器上运行统计模块、动态流量控制模块、静态流量控制模块、安全规则模块、鉴权模块、数据库中的任意一个或多个。API网关控制器集群中的计算设备500配合完成上述API网关控制器104的功能。
通信接口502用于与计算设备600和计算设备700通信,例如接收计算设备600和计算设备700发送的服务集群的负载参数和API路由装置的负载参数。通信接口502还具有用户接口的功能,用于接收用户管理界面发送的流量控制参数。
计算设备600的处理器601用于运行存储器604中的程序代码,实现API路由装置。API网关集群中有多个API路由装置的情况下,每个计算设备600上可以运行一个或多个API路由装置。
通信接口602用于与计算设备500和计算设备700通信,例如接收计算设备500发送的黑名单、告警信息,以及向计算设备700发送API请求等。
计算设备700的处理器701用于运行存储器704中的程序代码,实现各类服务。服务集群有多个服务的情况下,每个计算设备700上可以运行一个或多个服务。
通信接口702用于与计算设备500和计算设备600通信,例如发送服务集群的负载参数至计算设备500,接收计算设备600发送的API请求等。
图5中略去了API网关负载均衡装置和服务负载均衡装置,实际中还可以在计算设备600和应用间设置计算设备,用于运行API网关负载均衡装置,在API网关集群和服务集群间设置计算设备,用于运行服务负载均衡装置。
图5中,将API网关控制器集群,API路由装置集群和服务集群分别部署,实际中,这3个集群的计算设备也可以重叠。例如,服务提供系统中的部分计算设备上可能既运行有统计模块、动态流量控制模块、静态流量控制模块、安全规则模块、鉴权模块、数据库中的任意一个或多个,又运行有一个或多个API路由装置,或者又运行有一个或多个服务。图5中的计算设备,可以由云计算厂商提供。用户租用云计算厂商的计算设备,在计算设备上部署服务,并租用计算设备上部署的API网关控制器以及各类负载均衡装置。
需要说明的是,本文所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求书以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。
本领域普通技术人员可以意识到,本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(solid-state drive,SSD))等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。

Claims (13)

1.一种API网关集群的控制方法,其特征在于,所述方法应用于服务提供系统,所述服务提供系统包括应用编程接口API网关集群和服务集群,应用通过所述API网关集群访问所述服务集群;所述方法包括:
确定所述服务提供系统接收到的API请求超过流量控制参数;
获取所述API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
扩容所述API网关集群。
2.如权利要求1所述的方法,其特征在于,所述API网关集群包括API网关控制器和至少一个API路由装置;所述API网关集群的负载参数包括所述至少一个API路由装置的负载参数;
所述扩容所述API网关集群包括:
根据所述API网关控制器的指示在所述API网关集群中创建API路由装置。
3.一种API网关集群的控制方法,其特征在于,所述方法应用于服务提供系统,所述服务提供系统包括API网关集群和服务集群,应用通过所述API网关集群访问所述服务集群;所述方法包括:
确定所述服务提供系统接收到的API请求超过流量控制参数;
获取所述API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群不拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
增大所述流量控制参数。
4.如权利要求3所述的方法,其特征在于,所述流量控制参数包括用户级别的流量控制参数;
所述增大所述流量控制参数包括:
增大所述用户级别的流量控制参数。
5.如权利要求3所述的方法,其特征在于,所述流量控制参数包括API请求级别的流量控制参数;
所述增大所述流量控制参数包括:
增大所述API请求级别的流量控制参数。
6.一种API网关集群,其特征在于,包括API网关控制器和至少一个API路由装置;
所述API网关控制器,用于确定所述API网关集群接收到的API请求超过流量控制参数;获取所述至少一个API路由装置的负载参数;获取服务集群的负载参数,应用通过所述API网关集群访问所述服务集群;根据所述至少一个API路由装置的负载参数,确定所述API网关集群拥塞;根据所述服务集群的负载参数,确定所述服务集群不拥塞;在所述API网关集群中创建新的API路由装置。
7.一种API网关集群,其特征在于,包括API网关控制器和至少一个API路由装置;
所述API网关控制器,用于确定所述API网关集群接收到的API请求超过流量控制参数;获取所述至少一个API路由装置的负载参数;获取服务集群的负载参数,应用通过所述API网关集群访问所述服务集群;根据所述至少一个API路由装置的负载参数,确定所述API网关集群不拥塞;根据所述服务集群的负载参数,确定所述服务集群不拥塞;增大所述流量控制参数。
8.一种API网关集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述处理器,用于执行所述存储器中存储的程序代码执行以下步骤:
接收应用发送的API请求,所述应用通过所述API请求访问服务集群中的服务;
确定所述API请求超过流量控制参数;
获取所述API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
扩容所述API网关集群。
9.如权利要求8所述的API网关集群,其特征在于,所述处理器执行所述程序代码实现了至少一个API路由装置,所述API网关集群的负载参数包括所述至少一个API路由装置的负载参数;
所述扩容所述API网关集群包括:
根据API网关控制器的指示在所述API网关集群中创建API路由装置。
10.一种API网关集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;所述处理器,用于执行所述存储器中存储的程序代码执行以下步骤:
接收应用发送的API请求,所述应用通过所述API请求访问服务集群中的服务;
确定所述API请求超过流量控制参数;
获取所述API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群不拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
增大所述流量控制参数。
11.一种计算设备可读存储介质,其特征在于,所述计算设备可读存储介质中存储有指令,所述指令用于被API网关集群中的计算设备执行,以执行如下步骤:
接收应用发送的API请求,所述应用通过所述API请求访问服务集群中的服务;
确定所述API请求超过流量控制参数;
获取API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
扩容所述API网关集群。
12.如权利要求11所述的计算设备可读存储介质,其特征在于,所述API网关集群包括至少一个API路由装置,所述API网关集群的负载参数包括所述至少一个API路由装置的负载参数;
所述扩容所述API网关集群包括:
根据API网关控制器的指示在所述API网关集群中创建API路由装置。
13.一种计算设备可读存储介质,其特征在于,所述计算设备可读存储介质中存储有指令,所述指令用于被API网关集群中的计算设备执行,以执行如下步骤:
接收应用发送的API请求,所述应用通过所述API请求访问服务集群中的服务;
确定所述API请求超过流量控制参数;
获取所述API网关集群的负载参数;
获取所述服务集群的负载参数;
根据所述API网关集群的负载参数,确定所述API网关集群不拥塞;
根据所述服务集群的负载参数,确定所述服务集群不拥塞;
增大所述流量控制参数。
CN201880076418.7A 2018-03-21 2018-03-21 应用编程接口api网关集群的控制方法和api网关集群 Active CN111386676B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/079741 WO2019178761A1 (zh) 2018-03-21 2018-03-21 应用编程接口api网关集群的控制方法和api网关集群

Publications (2)

Publication Number Publication Date
CN111386676A CN111386676A (zh) 2020-07-07
CN111386676B true CN111386676B (zh) 2022-01-21

Family

ID=67988019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880076418.7A Active CN111386676B (zh) 2018-03-21 2018-03-21 应用编程接口api网关集群的控制方法和api网关集群

Country Status (4)

Country Link
US (2) US11362952B2 (zh)
EP (2) EP4250676A3 (zh)
CN (1) CN111386676B (zh)
WO (1) WO2019178761A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747505B1 (en) * 2019-05-17 2020-08-18 Google Llc API specification generation
JP7262378B2 (ja) * 2019-12-05 2023-04-21 株式会社日立製作所 認証認可システムおよび認証認可方法
CN111988355A (zh) * 2020-06-29 2020-11-24 汉海信息技术(上海)有限公司 限流方法、装置、服务器及服务器集群
CN112351015B (zh) * 2020-10-28 2023-03-14 广州助蜂网络科技有限公司 一种基于api的网关控制方法
CN112788099A (zh) * 2020-11-11 2021-05-11 中移雄安信息通信科技有限公司 加载后端服务的方法、装置、设备及计算机存储介质
CN112738175B (zh) * 2020-12-23 2022-08-23 深圳壹账通智能科技有限公司 请求处理方法及相关设备
US11360993B1 (en) * 2021-02-12 2022-06-14 Fmr Llc Automatic generation of specifications for data access layer application programming interfaces
CN113452617B (zh) * 2021-06-24 2023-12-19 上海豹云网络信息服务有限公司 动态网关路由管理方法、装置及存储介质
CN113726673B (zh) * 2021-07-13 2023-07-18 新华三大数据技术有限公司 服务网关流控方法、装置、设备及存储介质
CN113923216B (zh) * 2021-09-29 2023-12-15 阿里巴巴(中国)有限公司 一种分布式集群限流系统及方法和分布式集群节点
CN113923200A (zh) * 2021-10-12 2022-01-11 上海中通吉网络技术有限公司 海量api网关服务的实现方法及装置
WO2023067742A1 (ja) * 2021-10-20 2023-04-27 株式会社Nttドコモ ネットワークノード及び通信方法
CN114095419B (zh) * 2021-11-12 2023-11-28 软通动力信息技术(集团)股份有限公司 一种集群路由方法、装置、系统及存储介质
CN114244624A (zh) * 2021-12-31 2022-03-25 北京市商汤科技开发有限公司 流量控制方法及装置、设备、存储介质
CN114466016B (zh) * 2022-03-04 2023-06-09 烽火通信科技股份有限公司 一种数据中心网关动态负载均衡的实现方法和系统
US20230342224A1 (en) * 2022-04-25 2023-10-26 Docusign, Inc. Enforcing application programming interface limits in a document management system
CN115086234B (zh) * 2022-05-09 2024-04-26 阿里巴巴(中国)有限公司 消息处理方法及系统、设备及存储介质
US20230388226A1 (en) * 2022-05-26 2023-11-30 Accenture Global Solutions Limited On-site artificial intelligence application programming interfaces for routing and adapting traffic
CN115103008B (zh) * 2022-06-13 2024-03-08 北京奇艺世纪科技有限公司 一种服务请求转发系统
CN115396513A (zh) * 2022-07-26 2022-11-25 深圳市酷开网络科技股份有限公司 流量的控制方法及装置、存储介质、电子设备
CN117097591B (zh) * 2023-10-19 2024-01-23 四川中电启明星信息技术有限公司 一种应用安全接入网关系统及路由转发方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741690A (zh) * 2008-11-11 2010-06-16 华为软件技术有限公司 一种业务接口流量的控制方法及网关
CN103716372A (zh) * 2013-11-22 2014-04-09 浙江大学 一种数字图书馆即服务的云计算平台构建方法
CN105827446A (zh) * 2016-03-31 2016-08-03 深圳市金溢科技股份有限公司 一种智能交通api网关及智能交通业务系统
EP3267639A1 (en) * 2016-07-06 2018-01-10 Alcatel Lucent Congestion control within a communication network
CN107659460A (zh) * 2017-11-09 2018-02-02 广东技术师范学院 一种配置api访问量的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8320380B2 (en) * 2007-03-13 2012-11-27 Alcatel Lucent Under-assigning resources to video in triple-play virtual topologies to protect data-class traffic
US9338064B2 (en) * 2010-06-23 2016-05-10 Twilio, Inc. System and method for managing a computing cluster
US9769085B2 (en) * 2012-05-04 2017-09-19 Citrix Systems, Inc. Systems and methods for adaptive application provisioning
CN102984077B (zh) * 2012-12-04 2015-09-16 中国联合网络通信集团有限公司 网络拥塞的控制方法及系统
CN104243337B (zh) * 2013-06-09 2017-09-01 新华三技术有限公司 一种跨集群负载均衡的方法及装置
US10749711B2 (en) * 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US10104704B2 (en) * 2014-02-07 2018-10-16 Cisco Technology, Inc. Dynamic acceleration of prioritized mobile application traffic
CN105024842A (zh) * 2014-04-25 2015-11-04 深圳市腾讯计算机系统有限公司 服务器的扩容方法及装置
CN104168133B (zh) * 2014-07-11 2017-07-18 广州联智信息科技有限公司 一种动态配置api访问量的方法和网关及系统
CN104915224B (zh) * 2015-04-24 2019-01-04 青岛海信电器股份有限公司 一种关联应用程序的处理方法及装置
US10193867B2 (en) * 2015-05-27 2019-01-29 Ping Identity Corporation Methods and systems for API proxy based adaptive security
US20170011418A1 (en) * 2015-05-29 2017-01-12 Claude Denton System and method for account ingestion
WO2017024005A1 (en) * 2015-08-03 2017-02-09 Convida Wireless, Llc Mobile core network service exposure for the user equipment
US9686124B2 (en) * 2015-09-22 2017-06-20 Veniam, Inc. Systems and methods for managing a network of moving things
CN107222426B (zh) * 2016-03-21 2021-07-20 阿里巴巴集团控股有限公司 控流的方法、装置及系统
CN107145393A (zh) * 2017-04-27 2017-09-08 努比亚技术有限公司 一种负载调整方法、设备及计算机可读存储介质
US11048660B2 (en) * 2017-06-20 2021-06-29 Netflix, Inc. Acceleration system for facilitating processing of API calls
CN107426034B (zh) * 2017-08-18 2020-09-01 国网山东省电力公司信息通信公司 一种基于云平台的大规模容器调度系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741690A (zh) * 2008-11-11 2010-06-16 华为软件技术有限公司 一种业务接口流量的控制方法及网关
CN103716372A (zh) * 2013-11-22 2014-04-09 浙江大学 一种数字图书馆即服务的云计算平台构建方法
CN105827446A (zh) * 2016-03-31 2016-08-03 深圳市金溢科技股份有限公司 一种智能交通api网关及智能交通业务系统
EP3267639A1 (en) * 2016-07-06 2018-01-10 Alcatel Lucent Congestion control within a communication network
CN107659460A (zh) * 2017-11-09 2018-02-02 广东技术师范学院 一种配置api访问量的方法

Also Published As

Publication number Publication date
US11362952B2 (en) 2022-06-14
US20210006496A1 (en) 2021-01-07
US20220303216A1 (en) 2022-09-22
EP3761560C0 (en) 2023-07-05
EP3761560A1 (en) 2021-01-06
US11743187B2 (en) 2023-08-29
EP4250676A3 (en) 2024-01-10
WO2019178761A1 (zh) 2019-09-26
EP3761560B1 (en) 2023-07-05
EP4250676A2 (en) 2023-09-27
CN111386676A (zh) 2020-07-07
EP3761560A4 (en) 2021-03-03

Similar Documents

Publication Publication Date Title
CN111386676B (zh) 应用编程接口api网关集群的控制方法和api网关集群
US10708143B2 (en) Method and apparatus for the specification of a network slice instance and underlying information model
EP3968605A1 (en) Method for providing edge service, apparatus and device
US10972575B2 (en) Method and system for supporting edge computing
EP3530037B1 (en) System and method for network slice management in a management plane
US10708368B1 (en) System and methods for generating a slice deployment description for a network slice instance
EP3528466B1 (en) Information sending method, unit and system
EP3189690B1 (en) Method and apparatuses for enabling routing of data packets between a wireless device and a service provider based in the local service cloud
US11070433B2 (en) Network function NF management method and NF management device
US20140379928A1 (en) Method for implementing network using distributed virtual switch, apparatus for performing the same, and network system based on distributed virtual switch
US11818576B2 (en) Systems and methods for low latency cloud computing for mobile applications
CN105429938A (zh) 一种资源配置方法及装置
CN109995890B (zh) 一种管理网络地址转换nat网关的方法及服务器
US11595871B2 (en) Systems and methods for securely sharing context between MEC clusters
US11382150B2 (en) System and method of managing PNF connectivity in a network slice instance
US9681252B2 (en) Service provisioning and activation in telecommunications network
CN113904871B (zh) 网络切片的接入方法、pcf实体、终端和通信系统
CN114268591B (zh) 数据分流方法和装置
CN112583740B (zh) 网络通信方法及装置
EP3652980B1 (en) Virtual anchoring in anchorless mobile networks

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
TR01 Transfer of patent right

Effective date of registration: 20220217

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right