CN108881448B - Api请求的处理方法及装置 - Google Patents

Api请求的处理方法及装置 Download PDF

Info

Publication number
CN108881448B
CN108881448B CN201810677010.7A CN201810677010A CN108881448B CN 108881448 B CN108881448 B CN 108881448B CN 201810677010 A CN201810677010 A CN 201810677010A CN 108881448 B CN108881448 B CN 108881448B
Authority
CN
China
Prior art keywords
target
api request
service server
determining
domain name
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
CN201810677010.7A
Other languages
English (en)
Other versions
CN108881448A (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.)
Hangzhou Beigou Technology Co ltd
Original Assignee
Hangzhou Beigou Technology 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 Hangzhou Beigou Technology Co ltd filed Critical Hangzhou Beigou Technology Co ltd
Priority to CN201810677010.7A priority Critical patent/CN108881448B/zh
Publication of CN108881448A publication Critical patent/CN108881448A/zh
Application granted granted Critical
Publication of CN108881448B publication Critical patent/CN108881448B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

本发明公开了一种API请求的处理方法及装置。该方法包括:接收客户端发送的API请求,其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识,获取API请求中的目标域名与目标接口标识,根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群,并确定目标业务服务器集群中接收API请求的目标业务服务器,将API请求发送至目标业务服务器,实现了根据API请求中的目标域名与目标接口标识对API请求进行路由,在进行API请求的路由时,依据了API请求中的更多内容,从而,提高了API请求路由的正确率。

Description

API请求的处理方法及装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种应用程序编程接口(ApplicationProgramming 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请求路由的正确率。
附图说明
图1是本发明实施例提供的API请求的处理方法的应用场景的示意图;
图2是本发明实施例提供的API请求的处理方法实施例一的流程示意图;
图3是本发明实施例提供的API请求的处理方法实施例二的流程示意图;
图4为图3所示实施例中配置数据的一种实现方式的示意图;
图5是本发明实施例提供的API请求的处理方法实施例三的流程示意图;
图6是本发明实施例提供的API请求的处理装置实施例一的结构示意图;
图7是本发明实施例提供的API请求的处理装置实施例二的结构示意图;
图8是本发明实施例提供的API请求的处理装置实施例三的结构示意图;
图9是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1是本发明实施例提供的API请求的处理方法的应用场景的示意图。如图1所示,本发明实施例提供的API请求的处理方法可以由电商平台的负载均衡服务器12执行。负载均衡服务器12分别与客户端11及后端的业务服务器集群13连接。每个业务服务器集群13中均包括多个业务服务器131。负载均衡服务器12还可以与每个业务服务器131连接。不同的业务服务器集群13处理的业务或操作不同。客户端11可以向电商平台发送API请求,以进行购物或其他操作。电商平台中的负载均衡服务器12接收客户端发送的API请求,并需要根据API请求中包括的内容对API请求路由,即,负载均衡服务器12需要确定将接收到的API请求发送至哪个业务服务器集群13,并确定发送至该业务服务器集群中哪个业务服务器。该业务服务器接收到API请求后,对该API请求进行处理,以完成客户端11所请求的业务或操作。本发明实施例提供的API请求的处理方法中,负载均衡服务器12可以根据API请求中的目标域名及目标接口标识对API请求进行路由,相较于目前只根据API请求中的请求路径对API请求进行路由的方式,本发明实施例在进行API请求的路由时,依据了API请求中的更多内容,从而,提高了路由的正确率。
图2是本发明实施例提供的API请求的处理方法实施例一的流程示意图。如图2所示,本发明实施例提供的API请求的处理方法包括如下步骤:
步骤201:接收客户端发送的API请求。
其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识。
具体地,客户端在接收到用户的操作时,根据用户的操作生成API请求,并将该API请求发送至负载均衡服务器。
本发明实施例中所涉及的API请求可以为超文本传输协议(Hyper TextTransport Protocol,HTTP)请求或者网络套接字(WebSocket)请求。
API请求中包括其待访问的目标域名及目标域名下的待访问的目标接口标识等多项内容。以下以API请求为HTTP请求为例进行说明,假设某个HTTP请求的请求头中包括:
https://www.example.com/gateway/api?method=trade.create&spm=a21bo.2017.201870.1.62d311d99YlH9g&contentId=25048864,其中,www.example.com为该HTTP请求待访问的目标域名,/gateway/api为该HTTP请求的目标请求路径,method=trade.create&spm=a21bo.2017.201870.1.62d311d99YlH9g&contentId=25048864为该目标域名下该HTTP请求的参数,其中method=trade.create为待访问的目标接口标识(可以使用任意参数作为接口标识)。
从上述例子中可以看出,API请求中目标域名下包括目标请求路径和目标接口标识。在实际业务中,多个不同的目标接口标识可能会具有相同的目标请求路径,因此,目前只根据目标请求路径对API请求进行路由的方式会造成API请求的路由正确率较低。
需要说明的是,本发明实施例中,API请求中的目标接口标识为该API请求所请求的业务的标识或者发送该API请求的客户端的用户所进行的操作的标识。
步骤202:获取API请求中的目标域名与目标接口标识。
具体地,负载均衡服务器可以从API请求的请求头中获取目标域名及目标接口标识。
更具体地,负载均衡服务器可以根据API请求的请求头的标识字段识别目标域名及目标接口标识。继续以步骤201中的HTTP请求的例子为例进行说明,目标域名的标识字段可以是以“://”为开始标识字段,以“://”之后的第一个“/”为结束标识字段,请求的参数是“?”为开始标识字段,以空格或回车为结束标识字段,目标接口标识是请求的参数中的任意一个。
步骤203:根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群,并确定目标业务服务器集群中接收API请求的目标业务服务器。
其中,配置数据用于指示域名、接口标识与业务服务器集群的映射关系。
具体地,负载均衡服务器在获取到API请求中的目标域名和目标接口标识之后,可以基于获取到的API请求中的内容以及配置数据,确定该API请求对应的目标业务服务器集群。
本发明实施例中的配置数据与目前的配置数据的区别在于:本发明实施例中的配置数据指示的是所有的API请求中的域名、接口标识与业务服务器集群的映射关系;目前的配置数据指示的是所有的API请求中的请求路径与业务服务器集群的映射关系。
配置数据具体如何指示域名、接口标识与业务服务器集群之间的映射关系的方案将在实施例二中进行详细描述。
本发明实施例中的配置数据可以是负载均衡服务器中内置的配置文件中的数据,也可以是负载均衡服务器从配置系统中读取并存储的配置数据。后一种实现方式将在实施例二中进行详细描述。
本发明实施例中,负载均衡服务器在确定出API请求对应的目标业务服务器集群后,可以根据负载均衡策略确定该目标业务服务器集群中接收该API请求的目标业务服务器。
具体的负载均衡策略可以有以下几种:
1、轮询方式:将API请求依次轮询发送给目标业务服务器集群中的每个业务服务器;
2、最小链接方式:将API请求发送给目标业务服务器集群中目前负载最少的业务服务器;
3、互联网协议(Internet Protocol,IP)地址哈希方式:通过对目标业务服务器集群中的业务服务器的IP地址进行哈希计算,确定将API请求发送给哪个业务服务器;
4、权重方式:目标业务服务器集群中的业务服务器的权重越大,处理API请求的概率越高。
负载均衡服务器按照上述负载均衡策略,从目标业务服务器集群中确定出具体处理该API请求的目标业务服务器。
步骤204:将API请求发送至目标业务服务器。
具体地,目标业务服务器在接收到负载均衡服务器发送的API请求后,对该API请求进行处理,并将处理结果反馈至客户端。例如,API请求的请求操作为将物品A放入购物车中,则目标业务服务器接收到该API请求后,执行将物品A放入购物车的操作,并将处理结果反馈给客户端,则客户端会显示物品A已经放入购物车的页面。
目标业务服务器反馈处理结果的方式可以是目标业务服务器直接反馈给客户端,也可以是目标业务服务器先将处理结果反馈至负载均衡服务器,再由负载均衡服务器将处理结果反馈至客户端。本发明实施例对此不做限制。
本发明实施例提供的API请求的处理方法,通过接收客户端发送的API请求,其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识,获取API请求中的目标域名与目标接口标识,根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群,并确定目标业务服务器集群中接收API请求的目标业务服务器,将API请求发送至目标业务服务器,实现了根据API请求中的目标域名与目标接口标识对API请求进行路由,相较于目前只根据API请求中的请求路径对API请求进行路由的方式,本发明实施例在进行API请求的路由时,依据了API请求中的更多内容,从而,提高了API请求路由的正确率。
图3是本发明实施例提供的API请求的处理方法实施例二的流程示意图。本发明实施例在图2所示实施例的基础上,对根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群的具体步骤作一详细说明。如图3所示,本发明实施例提供的API请求的处理方法包括如下步骤:
步骤301:从配置系统中读取配置数据,并存储配置数据。
本发明实施例中的配置数据具体用于指示域名与路由规则集的映射关系,路由规则集中包括多个路由规则,每个路由规则用于指示接口标识与业务服务器集群的映射关系。
图4为图3所示实施例中配置数据的一种实现方式的示意图。如图4所示,本发明实施例中的配置数据的结构包括两级映射:
第一级映射为域名与路由规则集的映射关系,一个域名可以对应多个路由规则集,图4中,域名A与路由规则集A1、A2、A3及A4对应,域名B与路由规则集B1、B2及B3对应;
第二级映射为路由规则集中的每个路由规则指示的映射关系,每个路由规则集中包括多个路由规则,每个路由规则指示接口标识与业务服务器集群的映射关系,图4中,举例来说,路由规则集A1中包括路由规则A11及路由规则A12,路由规则A11用于指示接口标识A111与业务服务器集群A112的映射关系,路由规则A12用于指示接口标识A113与业务服务器集群A114的映射关系。
本发明实施例中的配置系统指的是能通过界面对配置数据进行修改的系统。配置系统和负载均衡服务器之间可以进行通信。
第一种实现方式中,负载均衡服务器在接收API请求之前从配置系统中读取配置数据,并将该配置数据存储在存储空间中。
目前的API请求的路由方式中,配置数据内置在负载均衡服务器中,在负载均衡服务器开始对API请求进行路由后,假设配置数据被修改,如果希望修改后的配置数据生效,则需要重新启动负载均衡服务器,这花费了较长时间,导致了负载均衡服务器对API请求的处理效率降低,会造成API请求的堆积,无法满足业务实际需求。同时,目前对配置数据进行修改的步骤较为繁琐,修改效率较低。
本发明实施例中,一方面,设置了单独的配置系统,开发人员可以通过该配置系统的界面对配置数据进行修改,步骤简洁,修改效率较高。另一方面,本发明实施例中,在接收API请求之前,负载均衡服务器读取配置数据并存储该配置数据,假设配置数据已经被修改,则负载均衡服务器会更新修改后的配置数据,在后续处理API请求时,就会按照该最新的配置数据处理,在此过程中,并不会重新启动负载均衡服务器。相较于目前在配置数据修改后需要重启负载均衡服务器的情况,本发明实施例中并不会出现由于修改了配置数据而导致负载均衡服务器的处理效率降低甚至中断的情况。
第二种实现方式中,负载均衡服务器在“根据配置数据以及目标域名,确定配置数据中目标域名对应的目标路由规则集”之前,从配置系统中读取配置数据,并存储配置数据。即,在该实现方式中,步骤301、步骤302与步骤303并没有时序关系,只要保证步骤301在步骤304之前执行即可。该实现方式同样可以达到第一种实现方式的技术效果,此处不再赘述。
步骤302:接收客户端发送的API请求。
其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识。
步骤302与步骤201的技术原理和实现过程类似,此处不再赘述。
步骤303:获取API请求中的目标域名与目标接口标识。
步骤303与步骤202的技术原理和实现过程类似,此处不再赘述。
步骤304:根据配置数据以及目标域名,确定配置数据中目标域名对应的目标路由规则集。
步骤305:根据目标路由规则集及目标接口标识,确定目标路由规则集中目标接口标识对应的目标路由规则,并确定目标路由规则对应的目标业务服务器集群。
在步骤304与步骤305中,基于配置数据的两级映射结构,先依据配置数据以及目标域名,从第一级映射关系中确定出目标域名对应的目标路由规则集,再依据该目标路由规则集及目标接口标识,从第二级映射关系中确定出目标接口标识对应的目标路由规则,进而,从该目标路由规则中确定出目标业务服务器集群。
举例来说,以图4为例进行说明,假设一个API请求中,目标域名为域名A,目标接口标识为A113。依据域名A和配置数据可以确定出域名A对应的目标路由规则集为A1、A2、A3及A4。再根据接口标识A113及目标路由规则集A1、A2、A3及A4,确定接口标识A113对应的目标路由规则为A12,目标路由规则A12对应的目标业务服务器集群为A114。至此可以确定出目标域名A、目标接口标识A113的API请求对应的目标业务服务器集群为A114。
步骤306:确定目标业务服务器集群中接收API请求的目标业务服务器。
步骤306与步骤203中相应技术特征的技术原理和实现过程类似,此处不再赘述。
步骤307:将API请求发送至目标业务服务器。
步骤307与步骤204的技术原理和实现过程类似,此处不再赘述。
本发明实施例提供的API请求的处理方式,通过从配置系统中读取配置数据,并存储配置数据,配置数据具体用于指示域名与路由规则集的映射关系,路由规则集中包括多个路由规则,每个路由规则用于指示接口标识与业务服务器集群的映射关系,接收客户端发送的API请求,获取API请求中的目标域名与目标接口标识,根据配置数据以及目标域名,确定配置数据中目标域名对应的目标路由规则集,根据目标路由规则集及目标接口标识,确定目标路由规则集中目标接口标识对应的目标路由规则,并确定目标路由规则对应的目标业务服务器集群,确定目标业务服务器集群中接收API请求的目标业务服务器,将API请求发送至目标业务服务器,一方面,设置了单独的配置系统,开发人员可以通过该配置系统的界面对配置数据进行修改,步骤简洁,修改效率较高,另一方面,负载均衡服务器每处理完一个API请求,就会重新从配置系统中读取最新的配置数据,并存储该配置数据,在处理下一个API请求时,就会按照该最新的配置数据处理,在此过程中,并不会重新启动负载均衡服务器,不会出现由于修改了配置数据而导致负载均衡服务器的处理效率降低的情况,再一方面,根据配置数据的具体实现方式确定目标业务服务器集群的过程简洁,实现效率较高。因此,本发明实施例提供的API请求的处理方法,在提高API请求路由正确率的基础上,提高了配置数据的修改效率以及提高了处理API请求的处理效率。
图5是本发明实施例提供的API请求的处理方法实施例三的流程示意图。本发明实施例在图2和图3所示实施例的基础上,对如何对API请求进行限速的步骤作一详细说明。如图5所示,本发明实施例提供的API请求的处理方法包括如下步骤:
步骤501:接收客户端发送的API请求。
其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识。
步骤501与步骤201的技术原理和实现过程类似,此处不再赘述。
步骤502:获取API请求中的目标域名与目标接口标识。
步骤502与步骤202的技术原理和实现过程类似,此处不再赘述。
在本发明实施例中也可以在接收客户端发送的API请求之前,从配置系统中读取配置数据,并存储配置数据。其实现过程与实施例二中的实现过程相同,此处不再赘述。
本发明实施例中,负载均衡服务器除了可以对API请求进行路由之外,还可以对API请求进行限速,以保证电商平台的负载不会超出其能力范围,或者,保证业务的正常运行。
在本发明实施例中,配置数据还用于指示每种接口标识对应的接口请求数量的上限值。不同的接口标识对应的接口请求数量的上限值可以不同,也可以相同,具体可以根据电商平台的实际业务需求进行设置。
步骤503:根据配置数据及目标接口标识,确定目标接口标识对应的第一目标上限值。
例如,电商平台在推出一项秒杀业务后,将该业务的数量限制为10000个。如果目标接口标识对应的业务为秒杀业务,则第一目标上限值为10000。
步骤504:统计当前与目标接口标识具有相同接口标识的接口请求的第一数量,并判断第一数量是否超过第一目标上限值。
步骤505:当确定第一数量大于或等于第一目标上限值时,拒绝继续处理API请求。
步骤506:当确定第一数量小于第一目标上限值时,确定执行根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群的步骤。
在步骤503-步骤506中,首先确定出目标接口标识对应的第一目标上限值。然后,统计当前与目标接口标识具有相同接口标识的接口请求的第一数量,判断该第一数量与第一目标上限值的大小,以确定需要如何处理该API请求。如果第一数量大于或等于第一目标上限值,说明此时目标接口标识对应的目标接口请求的数量已经达到限值,为了保证目标接口标识对应的业务或者操作按照预期运行,则需要拒绝处理该API请求。如果第一数量小于第一目标上限值,说明此时目标接口标识对应的目标接口请求的数量还没有达到限值,可以继续处理该API请求。
步骤507:根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群。
步骤507与步骤203中相应技术特征的技术原理和实现过程类似,此处不再赘述。
可选地,本发明实施例中,配置数据还用于指示每组业务服务器集群能处理的接口请求数量的上限值。该上限值可以表明业务服务器集群的处理能力,在该上限值内的API请求可以被处理,超出该上限值的API请求无法被处理。
步骤508:根据配置数据及目标业务服务器集群,确定目标业务服务器集群对应的第二目标上限值。
步骤509:统计目标业务服务器集群当前处理的接口请求的第二数量,并判断第二数量是否超过第二目标上限值。
步骤510:当确定第二数量大于或等于第二目标上限值时,拒绝继续处理API请求。
步骤511:当确定第二数量小于第二目标上限值时,确定执行确定目标业务服务器集群中接收API请求的目标业务服务器的步骤。
在步骤508-步骤511中,首先确定出目标业务服务器集群对应的第二目标上限值。然后,统计该目标业务服务器集群当前处理的接口请求的第二数量,判断该第二数量与第二目标上限值的大小,以确定需要如何处理该API请求。如果第二数量大于或等于第二目标上限值,说明该目标业务服务器集群已经达到处理能力的上限,无法再处理该API请求,则负载均衡服务器需要拒绝处理该API请求。如果第二数量小于第二目标上限值,说明此时该目标业务服务器集群还没有达到处理能力的上限,还可以处理该API请求。
步骤512:确定目标业务服务器集群中接收API请求的目标业务服务器。
步骤512与步骤203中的相应技术特征的技术原理和实现过程类似,此处不再赘述。
步骤513:将API请求发送至目标业务服务器。
步骤513与步骤204的技术原理和实现过程类似,此处不再赘述。
需要说明的是,在本发明实施例中,步骤503-步骤506与步骤508-步骤511可以只选其中的一组执行:如果执行步骤503-步骤506,则只是进行接口请求数量的限制,以保证业务按照预期运行;如果执行步骤508-步骤511,则是对业务服务器集群的处理能力进行限制,避免出现在业务服务器集群达到处理极限时,还发送API请求,使业务服务器集群出现宕机等现象。
在本发明实施例中,步骤503-步骤506与步骤508-步骤511也可以都执行,即,同时对接口请求数量进行限制和对业务服务器集群的处理能力进行限制。
本发明实施例提供的API请求的处理方法,通过对API请求进行限速,一方面实现对接口请求数量的限制,以保证业务按照预期运行,另一方面,对业务服务器集群的处理能力进行限制,避免出现在业务服务器集群达到处理极限时,还发送API请求,使业务服务器集群出现宕机等现象,提高了业务服务器集群的运行稳定性。
图6是本发明实施例提供的API请求的处理装置实施例一的结构示意图。如图6所示,本发明实施例提供的API请求的处理装置包括如下模块:接收模块61、获取模块62、第一确定模块63以及发送模块64。
接收模块61,用于接收客户端发送的API请求。
其中,API请求中包括API请求待访问的目标域名以及目标域名下的API请求待访问的目标接口标识。
获取模块62,用于获取API请求中的目标域名与目标接口标识。
可选地,获取模块62具体用于:从API请求的请求头中获取目标域名与目标接口标识。
第一确定模块63,用于根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群,并确定目标业务服务器集群中接收API请求的目标业务服务器。
其中,配置数据用于指示域名、接口标识与业务服务器集群的映射关系。
发送模块64,用于将API请求发送至目标业务服务器。
本发明实施例中的API请求为:HTTP请求或者WebSocket请求。
本发明实施例所提供的API请求的处理装置可执行本发明图2所示实施例所提供的API请求的处理方法,具备执行方法相应的功能模块和有益效果。
图7是本发明实施例提供的API请求的处理装置实施例二的结构示意图。本发明实施例在图7所示实施例的基础上,对API请求的处理装置中的其他模块以及第一确定模块63的具体组成作一详细说明。如图7所示,本发明实施例提供的API请求的处理装置还包括:
读取存储模块71,用于从配置系统中读取配置数据,并存储配置数据。
本发明实施例中,配置数据具体用于指示域名与路由规则集的映射关系,路由规则集中包括多个路由规则,每个路由规则用于指示接口标识与业务服务器集群的映射关系。
基于配置数据的这种实现方式,第一确定模块63具体包括:第一确定子模块631和第二确定子模块632。
第一确定子模块631,用于根据配置数据以及目标域名,确定配置数据中目标域名对应的目标路由规则集。
第二确定子模块632,用于根据目标路由规则集及目标接口标识,确定目标路由规则集中目标接口标识对应的目标路由规则,并确定目标路由规则对应的目标业务服务器集群。
本发明实施例所提供的API请求的处理装置可执行本发明图3所示实施例所提供的API请求的处理方法,具备执行方法相应的功能模块和有益效果。
图8是本发明实施例提供的API请求的处理装置实施例三的结构示意图。本发明实施例在图6和图7所示实施例的基础上,配置数据还用于指示每种接口标识对应的接口请求数量的上限值,以及,配置数据还用于指示每组业务服务器集群能处理的接口请求数量的上限值。基于配置数据的这种实现方式,本发明实施例对API请求的处理装置包括的其他模块作一详细说明。如图8所示,本发明实施例提供的API请求的处理装置还包括:第二确定模块81、第一统计判断模块82、第一拒绝模块83、第三确定模块84、第四确定模块85、第二统计判断模块86、第二拒绝模块87以及第五确定模块88。
第二确定模块81,用于根据配置数据及目标接口标识,确定目标接口标识对应的第一目标上限值。
第一统计判断模块82,用于统计当前与目标接口标识具有相同接口标识的接口请求的第一数量,并判断第一数量是否超过第一目标上限值。
第一拒绝模块83,用于当确定第一数量大于或等于第一目标上限值时,拒绝继续处理API请求。
第三确定模块84,用于当确定第一数量小于第一目标上限值时,确定执行根据配置数据、目标域名与目标接口标识,确定API请求对应的目标业务服务器集群的步骤。
第四确定模块85,用于根据配置数据及目标业务服务器集群,确定目标业务服务器集群对应的第二目标上限值。
第二统计判断模块86,用于统计目标业务服务器集群当前处理的接口请求的第二数量,并判断第二数量是否超过第二目标上限值。
第二拒绝模块87,用于当确定第二数量大于或等于第二目标上限值时,拒绝继续处理API请求。
第五确定模块88,用于当确定第二数量小于第二目标上限值时,确定执行确定目标业务服务器集群中接收API请求的目标业务服务器的步骤。
本发明实施例所提供的API请求的处理装置可执行本发明图5所示实施例所提供的API请求的处理方法,具备执行方法相应的功能模块和有益效果。
图9是本发明实施例提供的一种服务器的结构示意图。如图9所示,该服务器包括处理器91和存储器92。服务器中处理器91的数量可以是一个或多个,图9中以一个处理器91为例;服务器中的处理器91和存储器92可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器92作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的API请求的处理方法对应的程序指令/模块(例如,API请求的处理装置中的接收模块61、获取模块62、第一确定模块63以及发送模块64)。处理器91通过运行存储在存储器92中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的API请求的处理方法。
存储器92可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器92可进一步包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种API请求的处理方法,该方法包括:
接收客户端发送的API请求;其中,所述API请求中包括所述API请求待访问的目标域名以及所述目标域名下的所述API请求待访问的目标接口标识;
获取所述API请求中的目标域名与目标接口标识;
根据配置数据、所述目标域名与所述目标接口标识,确定所述API请求对应的目标业务服务器集群,并确定所述目标业务服务器集群中接收所述API请求的目标业务服务器;其中,所述配置数据用于指示域名、接口标识与业务服务器集群的映射关系;
将所述API请求发送至所述目标业务服务器。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的API请求的处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述API请求的处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种应用程序编程接口API请求的处理方法,其特征在于,包括:
接收客户端发送的API请求;其中,所述API请求中包括所述API请求待访问的目标域名以及所述目标域名下的所述API请求待访问的目标接口标识;
获取所述API请求中的目标域名与目标接口标识;
根据配置数据、所述目标域名与所述目标接口标识,确定所述API请求对应的目标业务服务器集群,并确定所述目标业务服务器集群中接收所述API请求的目标业务服务器;其中,所述配置数据用于指示域名、接口标识与业务服务器集群的映射关系;
将所述API请求发送至所述目标业务服务器;
所述配置数据具体用于指示域名与路由规则集的映射关系,所述路由规则集中包括多个路由规则,每个所述路由规则用于指示接口标识与业务服务器集群的映射关系;
所述根据配置数据、所述目标域名与目标接口标识,确定所述API请求对应的目标业务服务器集群,包括:
根据所述配置数据以及所述目标域名,确定所述配置数据中所述目标域名对应的目标路由规则集;
根据所述目标路由规则集及所述目标接口标识,确定所述目标路由规则集中目标接口标识对应的目标路由规则,并确定所述目标路由规则对应的目标业务服务器集群;
所述配置数据还用于指示每组业务服务器集群能处理的接口请求数量的上限值;
在所述根据所述目标路由规则集及所述目标接口标识,确定所述目标路由规则集中目标接口标识对应的目标路由规则,并确定所述目标路由规则对应的目标业务服务器集群之后,所述确定所述目标业务服务器集群中接收所述API请求的目标业务服务器之前,所述方法还包括:
根据所述配置数据及所述目标业务服务器集群,确定所述目标业务服务器集群对应的第二目标上限值;
统计所述目标业务服务器集群当前处理的接口请求的第二数量,并判断所述第二数量是否超过所述第二目标上限值;
当确定所述第二数量大于或等于所述第二目标上限值时,拒绝继续处理所述API请求;
当确定所述第二数量小于所述第二目标上限值时,确定执行确定所述目标业务服务器集群中接收所述API请求的目标业务服务器的步骤。
2.根据权利要求1所述的方法,其特征在于,在所述接收客户端发送的API请求之前,所述方法还包括:
从配置系统中读取配置数据,并存储所述配置数据。
3.根据权利要求1或2所述的方法,其特征在于,所述配置数据还用于指示每种接口标识对应的接口请求数量的上限值;
在所述获取所述API请求中的目标域名与目标接口标识之后,所述根据配置数据、所述目标域名与所述目标接口标识,确定所述API请求对应的目标业务服务器集群之前,所述方法还包括:
根据所述配置数据及所述目标接口标识,确定所述目标接口标识对应的第一目标上限值;
统计当前与所述目标接口标识具有相同接口标识的接口请求的第一数量,并判断所述第一数量是否超过所述第一目标上限值;
当确定所述第一数量大于或等于所述第一目标上限值时,拒绝继续处理所述API请求;
当确定所述第一数量小于所述第一目标上限值时,确定执行根据配置数据、所述目标域名与所述目标接口标识,确定所述API请求对应的目标业务服务器集群的步骤。
4.根据权利要求1或2所述的方法,其特征在于,所述获取所述API请求中的目标域名与目标接口标识,包括:
从所述API请求的请求头中获取所述目标域名与所述目标接口标识。
5.根据权利要求1或2所述的方法,其特征在于,所述API请求为:超文本传输协议HTTP请求或者网络套接字请求。
6.一种应用程序编程接口API请求的处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的API请求;其中,所述API请求中包括所述API请求待访问的目标域名以及所述目标域名下的所述API请求待访问的目标接口标识;
获取模块,用于获取所述API请求中的目标域名与目标接口标识;
第一确定模块,用于根据配置数据、所述目标域名与所述目标接口标识,确定所述API请求对应的目标业务服务器集群,并确定所述目标业务服务器集群中接收所述API请求的目标业务服务器;其中,所述配置数据用于指示域名、接口标识与业务服务器集群的映射关系;
发送模块,用于将所述API请求发送至所述目标业务服务器;
所述配置数据具体用于指示域名与路由规则集的映射关系,所述路由规则集中包括多个路由规则,每个所述路由规则用于指示接口标识与业务服务器集群的映射关系;
所述第一确定模块包括:第一确定子模块以及第二确定子模块;
所述第一确定子模块用于根据所述配置数据以及所述目标域名,确定所述配置数据中所述目标域名对应的目标路由规则集;
第二确定子模块用于根据所述目标路由规则集及所述目标接口标识,确定所述目标路由规则集中目标接口标识对应的目标路由规则,并确定所述目标路由规则对应的目标业务服务器集群;
所述配置数据还用于指示每组业务服务器集群能处理的接口请求数量的上限值;
所述装置还包括:第四确定模块、第二统计判断模块、第二拒绝模块以及第五确定模块;
第四确定模块,用于在所述根据所述目标路由规则集及所述目标接口标识,确定所述目标路由规则集中目标接口标识对应的目标路由规则,并确定所述目标路由规则对应的目标业务服务器集群之后,所述确定所述目标业务服务器集群中接收所述API请求的目标业务服务器之前,根据所述配置数据及所述目标业务服务器集群,确定所述目标业务服务器集群对应的第二目标上限值;
第二统计判断模块,用于统计所述目标业务服务器集群当前处理的接口请求的第二数量,并判断所述第二数量是否超过所述第二目标上限值;
第二拒绝模块,用于当确定所述第二数量大于或等于所述第二目标上限值时,拒绝继续处理所述API请求;
第五确定模块,用于当确定所述第二数量小于所述第二目标上限值时,确定执行确定所述目标业务服务器集群中接收所述API请求的目标业务服务器的步骤。
7.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的API请求的处理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的API请求的处理方法。
CN201810677010.7A 2018-06-27 2018-06-27 Api请求的处理方法及装置 Active CN108881448B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810677010.7A CN108881448B (zh) 2018-06-27 2018-06-27 Api请求的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810677010.7A CN108881448B (zh) 2018-06-27 2018-06-27 Api请求的处理方法及装置

Publications (2)

Publication Number Publication Date
CN108881448A CN108881448A (zh) 2018-11-23
CN108881448B true CN108881448B (zh) 2021-06-04

Family

ID=64295310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810677010.7A Active CN108881448B (zh) 2018-06-27 2018-06-27 Api请求的处理方法及装置

Country Status (1)

Country Link
CN (1) CN108881448B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600311B (zh) * 2018-11-28 2022-01-04 武汉斗鱼网络科技有限公司 基于php语言的路由方法、装置、服务器、终端及可读介质
CN111464574B (zh) * 2019-01-21 2022-10-21 阿里巴巴集团控股有限公司 调用、加载、注册、管理方法和路由、服务器、节点和介质
CN110287037B (zh) * 2019-05-20 2023-11-03 平安科技(深圳)有限公司 分布式的智能api异步回调方法及装置
CN110187972B (zh) * 2019-05-31 2023-08-01 上海银行股份有限公司 一种基于api的软负载均衡实现方案
CN110768912B (zh) * 2019-10-21 2022-11-18 中国民航信息网络股份有限公司 Api网关限流方法及装置
CN110879819A (zh) * 2019-11-20 2020-03-13 北京明略软件系统有限公司 路由信息快速准确识别方法、装置、服务器及存储介质
CN110944044B (zh) * 2019-11-20 2020-11-13 广州市品高软件股份有限公司 一种分布式api网关系统及其实现方法
CN110990039B (zh) * 2019-11-29 2023-09-05 北京金山云网络技术有限公司 应用程序更新方法、装置、系统及计算机可读存储介质
CN110913025B (zh) * 2019-12-31 2022-06-24 中国银联股份有限公司 服务调用方法、装置、设备及介质
CN111367654A (zh) * 2020-02-12 2020-07-03 吉利汽车研究院(宁波)有限公司 基于异构云平台的数据处理方法及装置
CN111343240B (zh) * 2020-02-12 2022-08-16 北京字节跳动网络技术有限公司 一种服务请求的处理方法、装置、电子设备及存储介质
CN111562994B (zh) * 2020-04-29 2023-10-31 北京达佳互联信息技术有限公司 应用程序接口转发方法、装置、电子设备及存储介质
CN111355816B (zh) * 2020-05-22 2020-08-25 支付宝(杭州)信息技术有限公司 服务器选取方法、装置、设备及分布式服务系统
CN113760478A (zh) * 2020-06-05 2021-12-07 华为技术有限公司 目标作业系统的访问控制方法、装置、设备及介质
CN113765962B (zh) * 2020-07-17 2024-04-09 北京京东尚科信息技术有限公司 用于服务平台的数据处理方法和系统、计算机系统和介质
CN112804373B (zh) * 2020-12-30 2022-10-14 微医云(杭州)控股有限公司 接口域名确定方法、装置、电子设备及存储介质
CN114827276B (zh) * 2022-04-22 2023-10-24 网宿科技股份有限公司 基于边缘计算的数据处理方法、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064866A (zh) * 2006-04-28 2007-10-31 华为技术有限公司 一种短信的路由寻址方法及系统
CN101087253A (zh) * 2007-04-04 2007-12-12 华为技术有限公司 保存域名系统记录的方法、装置、域名解析方法及装置
CN101282368A (zh) * 2007-04-04 2008-10-08 华为技术有限公司 保存域名系统记录的方法、装置、域名解析方法及装置
CN101834910A (zh) * 2007-04-04 2010-09-15 华为技术有限公司 域名解析方法及装置
CN102970387A (zh) * 2012-11-15 2013-03-13 上海牙木通讯技术有限公司 一种域名解析方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11128476B2 (en) * 2016-03-23 2021-09-21 Go Daddy Operating Company, LLC DNS provider configuring a registry DNSSEC record

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101064866A (zh) * 2006-04-28 2007-10-31 华为技术有限公司 一种短信的路由寻址方法及系统
CN101087253A (zh) * 2007-04-04 2007-12-12 华为技术有限公司 保存域名系统记录的方法、装置、域名解析方法及装置
CN101282368A (zh) * 2007-04-04 2008-10-08 华为技术有限公司 保存域名系统记录的方法、装置、域名解析方法及装置
CN101834910A (zh) * 2007-04-04 2010-09-15 华为技术有限公司 域名解析方法及装置
CN102970387A (zh) * 2012-11-15 2013-03-13 上海牙木通讯技术有限公司 一种域名解析方法、装置及系统

Also Published As

Publication number Publication date
CN108881448A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108881448B (zh) Api请求的处理方法及装置
CN111460460B (zh) 任务访问方法、装置、代理服务器及机器可读存储介质
CN103716251B (zh) 用于内容分发网络的负载均衡方法及设备
CN108833450B (zh) 一种实现服务器防攻击方法及装置
CN110166570B (zh) 业务会话管理方法、装置、电子设备
CN106790340B (zh) 一种链路调度方法及装置
CN110830564A (zh) Cdn调度方法、装置、系统及计算机可读存储介质
CN111327647B (zh) 一种容器对外提供服务的方法、装置及电子设备
CN110224943B (zh) 基于url的流量服务限流方法、电子设备及计算机存储介质
CN107360117B (zh) 数据处理的方法、装置及系统
CN104219230B (zh) 识别恶意网站的方法及装置
CN105791254B (zh) 网络请求处理方法、装置及终端
US20210048956A1 (en) Storage system, and method and apparatus for allocating storage resources
CN111901396B (zh) 一种资源请求响应方法、重定向服务器及决策分发服务器
CN110457128B (zh) 任务分配方法、装置和系统
CN113361913A (zh) 一种通信业务编排方法、装置、计算机设备及存储介质
CN110035128B (zh) 一种直播调度方法、装置、直播系统及存储介质
CN110611937B (zh) 数据分流方法、装置、边缘数据中心和可读存储介质
CN111385328A (zh) 业务请求的处理方法、系统及电子设备
CN113596105B (zh) 内容的获取方法、边缘节点及计算机可读存储介质
CN111262779A (zh) 即时通讯中数据的获取方法、装置、服务器及系统
CN110839077A (zh) 文件请求处理方法、请求反馈信息处理方法及相关组件
CN105897934A (zh) 在服务器实现的业务请求处理方法及装置
CN115086331A (zh) 云设备调度方法、装置及系统、电子设备及存储介质
CN108306859B (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
GR01 Patent grant
GR01 Patent grant