CN111988387B - 接口请求处理方法、装置、设备及存储介质 - Google Patents

接口请求处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111988387B
CN111988387B CN202010802376.XA CN202010802376A CN111988387B CN 111988387 B CN111988387 B CN 111988387B CN 202010802376 A CN202010802376 A CN 202010802376A CN 111988387 B CN111988387 B CN 111988387B
Authority
CN
China
Prior art keywords
interface
request
target
degradation
server
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
CN202010802376.XA
Other languages
English (en)
Other versions
CN111988387A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010802376.XA priority Critical patent/CN111988387B/zh
Publication of CN111988387A publication Critical patent/CN111988387A/zh
Application granted granted Critical
Publication of CN111988387B publication Critical patent/CN111988387B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开实施例关于一种接口请求处理方法、装置、服务器、设备及存储介质。该方法包括生成接口请求;其中,接口请求中包括接口请求待访问的目标接口;接口请求用于指示通过访问目标接口以获取接口数据;当确定目标接口为预设类型接口时,将接口请求发送至CDN服务端,以使CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,接口数据文件基于接口返回数据生成,接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,接口数据文件中包含访问目标接口时所获取的接口数据;接收接口响应数据。本公开实施例提供的技术方案,可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度,有效提高了用户体验。

Description

接口请求处理方法、装置、设备及存储介质
技术领域
本公开实施例涉及计算机技术领域,尤其涉及接口请求处理方法、装置、服务器、设备及存储介质。
背景技术
随着智能终端(如手机、平板电脑、智能手表等)的普及,互联网规模得到了空前的发展,各种应用程序(Application,APP),每日活跃用户达数亿,有些服务器的API(Application Programming Interface,应用程序编程接口)时刻承担着几十万的QPS(Queries-per-second,每秒钟查询数)请求。而在特殊时期,一个API甚至可能承接高达一千万、甚至几千万的QPS请求。API的超高QPS请求,对于服务器资源、缓存资源、网络带宽等都是严峻的挑战。
相关技术中,简单暴力地堆砌服务器资源,是保障服务器能够抗住超高QPS请求的必不可少的环节。但是,如果在超高QPS请求的情形下,而服务器资源不足时(比如,提前没有采购到足够多的服务器,或者关键时刻某个机房出现故障,或者实际流量比预估的高等因素导致的服务器资源不足),容易出现API请求无法正常完成,严重影响用户体验。
发明内容
本公开实施例提供一种接口请求处理方法、装置、服务器、设备及存储介质,以至少解决相关技术中超高QPS请求的情形下接口请求异常的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种接口请求处理方法,应用于客户端,该方法包括:
生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据;
接收所述接口响应数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。
可选的,所述当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端步骤包括:
当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;
当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端。
可选的,所述获取所述目标接口对应的目标降级配置信息步骤包括:
获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;
从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。
可选的,所述获取所述接口降级配置信息表步骤包括:
每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;
接收所述配置中心发送的接口降级配置信息表。
可选的,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;
当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端,包括:
当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端。
可选的,还包括:
当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;
当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。
可选的,所述目标降级配置信息还包括目标接口降级地址;
将所述接口请求发送至CDN服务端步骤包括:
将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。
可选的,所述目标降级配置信息还包括目标降级接口路径;
将所述接口请求发送至CDN服务端,包括:
根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。
根据本公开实施例的第二方面,提供一种接口请求处理方法,应用于服务端,该方法包括:
当接口的每秒钟查询数大于预设阈值时,基于预设轮询周期获取所述接口的接口返回数据;
将所述接口返回数据写入文件生成接口数据文件,并将所述接口数据文件发送至CDN服务端;
获取客户端发起的接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
当确定所述目标接口为预设类型接口时,控制所述客户端将所述接口请求发送至所述CDN服务端,以使所述CDN服务端基于所述接口数据文件生成与所述接口请求对应的接口响应数据;其中,所述接口数据文件中包含访问所述目标接口时所获取的接口数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当通过配置中心向客户端下发请求降级指令时,确定所述目标接口为预设类型接口。
根据本公开实施例的第三方面,提供一种接口请求处理装置,应用于客户端,该装置包括:
请求生成单元,被配置为执行生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
请求发送单元,被配置为执行当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据;
数据接收单元,被配置为执行接收所述接口响应数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。
可选的,所述请求发送单元,包括:
配置获取子单元,被配置为执行当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;
请求发送子单元,被配置为执行当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端。
可选的,所述配置获取子单元,包括:
信息表获取子模块,被配置为执行获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;
配置提取子模块,被配置为执行从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。
可选的,所述信息表获取子模块,被配置为执行:
每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;
接收所述配置中心发送的接口降级配置信息表。
可选的,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;
所述请求发送子单元,包括:
第一请求发送子模块,被配置为执行当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端。
可选的,还包括:
第二请求发送子模块,被配置为执行当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;
第三请求发送子模块,被配置为执行当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。
可选的,所述目标降级配置信息还包括目标接口降级地址;
所述请求发送子单元,被配置为执行:
将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。
可选的,所述目标降级配置信息还包括目标降级接口路径;
所述请求发送子单元,被配置为执行:
根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。
根据本公开实施例的第四方面,提供一种接口请求处理装置,应用于服务端,该装置包括:
数据获取单元,被配置为执行当接口的每秒钟查询数大于预设阈值时,基于预设轮询周期获取所述接口的接口返回数据;
文件生成单元,被配置为执行将所述接口返回数据写入文件生成接口数据文件,并将所述接口数据文件发送至CDN服务端;
请求获取单元,被配置为执行获取客户端发起的接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口请求数据;
控制单元,被配置为执行当确定所述目标接口为预设类型接口时,控制所述客户端将所述接口请求发送至所述CDN服务端,以使所述CDN服务端基于所述接口数据文件生成与所述接口请求对应的接口响应数据;其中,所述接口数据文件中包含访问所述目标接口时所获取的接口数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当通过配置中心向客户端下发请求降级指令时,确定所述目标接口为预设类型接口。
根据本公开实施例的第五方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第一方面所述的接口请求处理方法。
根据本公开实施例的第六方面,提供一种服务器,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现上述第二方面所述的接口请求处理方法。
根据本公开实施例的第七方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开任意实施例所述的接口请求处理方法。
根据本公开实施例的第八方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,实现本公开任意实施例所述的接口请求处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过当确定接口请求待访问的目标接口为预设类型接口时,将接口请求发送至CDN服务端,以使CDN服务端基于预先存储的接口数据文件响应客户端发起的接口请求,不仅可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度,而且可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性和可用性,大大提高了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是本公开实施例提供的一种接口请求处理的应用场景示意图。
图2是根据一示例性实施例示出的一种接口请求处理方法的流程图。
图3是根据一示例性实施例示出的一种接口数据文件生成过程示意图。
图4是根据一示例性实施例示出的另一种接口请求处理方法的流程图。
图5是根据一示例性实施例示出的CDN服务端或异地接口服务端与本地接口服务端及客户端进行交互的信令图。
图6是根据一示例性实施例示出的本地接口服务端与客户端进行交互的信令图。
图7是根据一示例性实施例示出的一种接口请求处理方法的流程图。
图8是根据一示例性实施例示出的另一种接口请求处理方法的流程图。
图9是根据一示例性实施例示出的一种接口请求处理方法的交互示意图。
图10是根据一示例性实施例示出的一种接口请求处理装置框图。
图11是根据一示例性实施例示出的一种接口请求处理装置框图。
图12是根据一示例性实施例示出的一种服务器的结构框图。
图13是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是本公开实施例提供的一种接口请求处理的应用场景示意图,如图1所示,电子设备11与CDN服务器12建立通信连接,配置于电子设备中的客户端生成接口请求后,当确定接口请求待访问的目标接口为预设接口类型时,客户端直接将接口请求发送至CDN服务器12中,使配置于CDN服务器12的CDN服务端基于预先存储的接口数据文件响应该接口请求。CDN服务器12将接口响应数据直接或间接反馈至电子设备11中,以在电子设备11中展示接口响应数据。其中,配置于电子设备的客户端可通过HTTP(HyperText TransferProtocol,超文本传输协议)或网络套接字Websocket协议等实现与CDN服务器12的通信连接。
图2是根据一示例性实施例示出的一种接口请求处理方法的流程图,如图2所示,接口请求处理方法用于电子设备(如智能终端)中,由配置于电子设备中的客户端来执行,该方法包括以下步骤。
在步骤S21中,生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据。
在本公开实施例中,接口请求可以是客户端用于请求接口服务的请求,也即,接口请求用于指示通过访问目标接口以获取接口数据。其中,客户端在接收到用户的操作时,可以根据用户的操作生成接口请求。例如,当用户打开应用的某一页面时,有可能会需要调用客户端的某些接口,此时生成接口请求。可选的,客户端生成的接口请求中可以包括该接口请求待访问的接口名称、待实现的功能描述、待访问的目标域名及目标域名下待访问的目标接口标识等一项或多项信息。接口请求包括API请求,其中,API请求可以为HTTP请求,还可以为Websocket请求。
在步骤S22中,当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据。
其中,CDN(Content Delivery Network,内容分发网络)是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。因此,CDN服务端可用于网站加速、将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率,解决因分布、带宽、服务器性能带来的访问延迟问题。
在本公开实施例中,当确定目标接口为预设类型接口时,客户端将接口请求发送至CDN服务端,CDN服务端接收到客户端发送的接口请求后,基于预先存储的接口数据文件生成接口响应数据,并将接口响应数据反馈至客户端。其中,CDN服务端可以直接将接口响应数据发送至客户端,也可以通过其他终端设备将接口响应数据间接转发至客户端,也即CDN服务端基于预先存储的接口数据文件生成接口响应数据后,将该接口响应数据发送至其他终端设备,其他终端设备将接口响应数据转发至生成接口请求的客户端。需要说明的是,本公开实施例对将接口响应数据反馈至客户端的方式不做限定。
在本公开实施例中,预设类型接口可以理解为需要降级的接口。可选的,所述确定所述目标接口为预设类型接口步骤包括:当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。示例性的,客户端生成接口请求后,将接口请求发送至API服务端,API服务端判断当前该接口请求访问的目标接口处理的QPS请求是否大于预设阈值,若是,则可将目标接口确定为预设类型接口,并且API服务端将目标接口确定为预设类型接口的消息发送至客户端,或者API服务端直接将目标接口处理QPS请求大于预设阈值的消息发送至客户端,客户端接收到目标接口处理QPS请求大于预设阈值的消息时,确定目标接口为预设类型接口,并将接口请求发送至CDN服务端,若否,则API服务端可直接对从客户端接收到的接口请求进行处理。这样设置的好处在于,可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性。又示例性的,客户端生成接口请求后,将接口请求发送至API服务端,当确定API服务端针对客户端发起的接口请求响应常时,确定目标接口为预设类型接口,此时,再将该接口请求转发至CDN服务端。其中,对API服务端针对接口请求响应失败可以包括:对接口请求处理失败、接口请求返回异常及响应接口请求超时等情况。这样设置的好处在于,可以有效解决服务器无法正常响应接口请求的技术问题,有效保证了提供接口请求对应的服务的可用性。再示例性的,当接收到API服务端通过配置中心下发的请求降级指令时,确定目标接口为预设类型接口,例如API服务端的目标接口处理QPS请求较大时,为了缓解API服务端处理接口请求的数据压力,可通过配置中心向客户端发送目标接口对应的请求降级指令,当客户端接收到API服务端通过配置中心下发的请求降级指令时,可直接确定目标接口为预设类型接口,此时,客户端可直接将接口请求发送至CDN服务端。这样设置的好处在于,可以有效降低API服务器处理接口请求的数据压力,提高针对接口请求的响应速度。
在本公开实施例中,接口数据文件可以理解为包含各个接口的响应数据的文件。接口数据文件基于实时接口数据动态更新,例如,CDN服务端基于预设轮询周期访问API服务端,API服务端基于CDN服务端的访问请求获取接口返回数据,并将接口返回数据写入文件中,生成接口数据文件,并将该接口数据文件发送至CDN服务端。又示例性的,其他服务端可以通过轮刷任务实时获取各个接口的响应数据,并将各个接口的响应数据写入文件中,生成接口数据文件,并将生成的接口数据文件预先存储在CDN服务端。示例性的,以春晚抢红包主会场为例说明接口数据文件生成过程,具体的,假如春晚时一共有5轮红包,每轮红包有一个活动页面,这5个活动页面对应5个API,分别为:/api/springFestival/round1、/api/springFestival/round2、/api/springFestival/round3、/api/springFestival/round4、/api/springFestival/round5。执行轮刷任务的服务器可以依次向API服务端请求这5个接口,API服务端处理请求,并返回相应的接口数据。执行轮刷任务的服务器获取到这5个接口数据后,依次将该接口数据写入文件:round1.json、round2.json、round3.json、round4.json、round5.json,从而生成接口数据文件。当然,也可以将获取的所有接口数据写入同一文件中。其中,如果服务端为API服务端,在执行轮刷任务的服务端生成接口数据文件后,将该接口数据文件反馈至CDN服务端并存储;如果服务端为CDN服务端时,在执行轮刷任务的服务端生成接口数据文件后,执行轮刷任务的服务端将生成接口数据文件发送至CDN服务端的各个边缘节点。以服务端为CDN服务端为例,图3是根据一示例性实施例示出的一种接口数据文件生成过程示意图。如图3所示,执行轮刷任务的服务端向API服务端发送接口请求,API服务端处理接口请求,并返回接口数据给执行轮刷任务的服务端,执行轮刷任务的服务端将接口数据写入文件,生成接口数据文件,并将生成的接口数据文件上传到的CDN服务端的各个边缘节点(CDN边缘节点1~CDN边缘节点N)。例如,接口数据文件包括5个接口的接口数据,并且每个接口数据分别存储在各自文件中,则这5个接口数据文件的上传路径可以依次为/bs2/apiDegrade/springFestival/round1.json、/bs2/apiDegrade/springFestival/round2.json、/bs2/apiDegrade/springFestival/round3.json、/bs2/apiDegrade/springFestival/round4.json、/bs2/apiDegrade/springFestival/round5.json。需要说明的是,可以通过定期执行轮刷任务来动态更新接口数据文件,以使接口数据文件中尽可能存储最新的接口数据。
在本公开实施例的一个实施方式中,客户端将接口请求发送至CDN服务端后,CDN服务端对接口请求进行分析,从而获取该接口请求待访问的接口名称、待实现的功能描述、待访问的目标域名及目标域名下待访问的目标接口标识等信息,通过分析接口请求中包含的内容,即可得到该接口请求待访问的接口,从而从接口数据文件中提取与该接口请求待访问的接口对应的接口数据,并将提取的接口数据作为该接口请求对应的接口响应数据。
在步骤S23中,接收所述接口响应数据。
在本公开实施例中,CDN服务端获取到与接口请求对应的接口响应数据后,将接口响应数据反馈给生成接口请求的客户端,其中,CDN服务端可以直接将接口响应数据发送至客户端,也可以通过其他终端设备将接口响应数据间接转发至客户端,也即CDN服务端获取接口响应数据后,将该接口响应数据发送至其他终端设备,其他终端设备将接口响应数据转发至生成接口请求的客户端。需要说明的是,本公开实施例对将接口响应数据反馈至客户端的方式不做限定。
本公开实施例提供的接口请求处理方法,当确定接口请求待访问的目标接口为预设类型接口时,将接口请求发送至CDN服务端,以使CDN服务端基于预先存储的接口数据文件响应客户端发起的接口请求,不仅可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度,而且可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性和可用性。
在一个可选的实施例中,所述当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端步骤包括:当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端。其中,目标降级接口配置信息包括接口请求待访问的目标接口的降级配置信息,用于指示对目标接口执行降级操作。对目标接口执行降级操作可以理解为,对于访问目标接口的接口请求,将接口请求发送至CDN服务端,以在CDN服务端基于预先存储的接口数据文件响应该接口请求,降低API服务端中的目标接口实时处理接口请求的压力。例如,目标降级配置信息可以包括目标接口的标识信息、目标接口的降级路径、目标接口的降级地址及目标接口的降级方式等相关信息。当目标降级配置信息满足预设配置条件时,将接口请求发送至CDN服务端。这样设置的好处在于,可以进一步根据接口请求待访问的目标接口对应的目标降级配置信息,判断是否将接口请求发送至CDN服务端,有效提高将接口请求发送至CDN服务端的时机判断的准确性。
可选的,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端,可选的,当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端。当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。这样设置的好处在于,可以根据目标接口的降级方式,合理确定接口请求的发送方式,从而使得API服务端或CDN服务端以合理的方式对接口请求进行数据响应。
示例性的,目标接口降级方式包括主动降级方式和被动降级方式。其中,当接口流量太大、API服务异常、机房异常、带宽过载或光纤故障时,可将目标接口的降级方式设置为主动降级方式。而接口被动降级主要使用的场景为:API服务正常,并且可以抗住用户的绝大部分接口请求流量,在这种情形下,可以将目标接口的降级方式设置为被动降级方式。
示例性的,确定目标降级配置信息中的目标接口降级方式,也即根据目标降级配置信息确定目标接口的降级方式。当目标接口的降级方式为主动降级时,客户端将生成的接口请求直接发送至CDN端,使CDN服务端直接根据预先存储的接口数据文件响应该接口请求。当目标接口的降级方式为被动降级时,客户端先将接口请求发送至API服务端,使API服务端对接口请求进行实时处理;当确定API服务端对接口请求处理异常时,将该接口请求转发至CDN服务端,以使CDN服务端根据预先存储的接口数据文件响应该接口请求。其中,确定API服务端对接口请求处理异常可以包括:对接口请求处理失败、接口请求返回异常及响应接口请求超时等情况。当客户端接收不到针对接口请求的接口响应数据时,可确定API服务端对接口请求处理失败。可选的,API服务端对接口请求处理失败可以包括接口请求访问的目标接口异常、API服务端所属机房异常、流量太大导致API服务端瘫痪、带宽过载、光纤故障等情况。
可选的,当确定API服务端对接口请求处理异常时,还可以使API服务端根据本地预先存储的接口数据文件响应该接口请求。当然,当确定API服务端对接口请求处理异常时,还可以使API服务端将该接口请求转发至CDN服务端,从而使CDN服务端根据预先存储的接口数据文件响应该接口请求。
在一个可选的实施例中,所述目标降级配置信息还包括目标接口降级地址;将所述接口请求发送至CDN服务端步骤包括:将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。示例性的,客户端将目标接口降级地址及接口请求发送至CDN服务端,CDN服务端根据目标接口降级地址从预先存储的接口数据文件中提取与接口请求对应的接口响应数据。这样设置的好处在于,可以根据目标接口降级地址快速、准确地从接口数据文件中提取接口请求对应的接口响应数据。
在一个可选的实施例中,所述目标降级配置信息还包括目标降级接口路径;将所述接口请求发送至CDN服务端,包括:根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。其中,目标降级接口路径用于指示接口请求发送的CDN服务端,也即用于表征哪个CDN服务端可以提供针对该接口请求的接口服务,也即哪个CDN服务端可以响应该接口请求。
在一个可选的实施例中,所述获取所述目标接口对应的目标降级配置信息步骤包括:获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。所述获取所述接口降级配置信息表步骤包括:每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;接收所述配置中心发送的接口降级配置信息表。这样设置的好处在于,可以实时获取最新的目标接口降级配置信息,从而有助于根据目标接口降级配置信息准确判断接口请求的发送方式。
示例性的,获取接口降级配置信息表,如实时或每隔预设时长向配置中心(或核心配置下发服务端)发送降级配置信获取请求,并接收配置中心发送的接口降级配置信息表,其中,接口降级配置信息表中包含了各个降级接口的配置信息。配置中心为轻量级服务端,主要用于下发一些轻量级并且十分重要的配置信息,所谓的轻量级,指的是基本没有远程调用,只需简单读取配置,下发一些简单信息,这也使得配置中心可用性极高,具有极好的稳定性。从获取的接口降级配置信息表中提取与目标接口匹配的目标降级配置信息。示例性的,判断接口降级配置信息表中是否包含目标接口的标识信息,若是,则将包含目标接口的标识信息的降级配置信息作为目标降级配置信息。
图4是根据一示例性实施例示出的一种接口请求处理方法的流程图,如图4所示,接口请求处理方法用于服务器中,由配置于服务器中的服务端来执行,该方法包括以下步骤。
在步骤S41中,当接口的每秒钟查询数大于预设阈值时,基于预设轮询周期获取所述接口的接口返回数据。
在本公开实施例中,实时统计服务端的各个接口的每秒钟查询数,并判断各个接口的每秒钟查询数是否大于预设阈值,其中,各个接口的每秒钟查询数可以相同也可以不同。可以理解的是,每个接口的每秒钟查询数用于表征接口处理接口请求的数据压力大小。当接口的每秒钟查询数越大,说明服务端中的该接口处理接口请求的数据压力越大;当接口的每秒钟查询数越小,说明服务端中的该接口处理接口请求的数据压力越小。当接口的每秒钟查询数大于预设阈值时,基于轮询周期获取接口的接口返回数据。示例性的,CDN服务端基于预设轮询周期访问服务端中每秒钟查询数大于预设阈值的接口,服务端基于CDN服务端的访问请求获取该接口的接口返回数据。
在步骤S42中,将所述接口返回数据写入文件生成接口数据文件,并将所述接口数据文件发送至CDN服务端。
在本公开实施例中,服务端将各个接口的接口返回数据写入文件中,生成接口数据文件,并将接口数据文件发送至CDN服务端。示例性的,以春晚抢红包主会场为例说明接口数据文件生成过程,具体的,假如春晚时一共有5轮红包,每轮红包有一个活动页面,这5个活动页面对应5个API,分别为:/api/springFestival/round1、/api/springFestival/round2、/api/springFestival/round3、/api/springFestival/round4、/api/springFestival/round5。执行轮刷任务的服务器可以依次向API服务端请求这5个接口,API服务端处理请求,并返回相应的接口数据。执行轮刷任务的服务器获取到这5个接口数据后,依次将该接口数据写入文件:round1.json、round2.json、round3.json、round4.json、round5.json,从而生成接口数据文件。当然,也可以将获取的所有接口数据写入同一文件中。
在步骤S43中,获取客户端发起的接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据。
其中,接口请求可以是客户端用于请求接口服务的请求,也即,客户端在接收到用户的操作时,根据用户的操作生成接口请求。例如,当用户打开应用的某一页面时,有可能会需要调用客户端的某些接口,此时生成接口请求,也即客户端发起的接口请求。可选的,客户端发起的接口请求中可以包括该接口请求待访问的接口名称、待实现的功能描述、待访问的目标域名及目标域名下待访问的目标接口标识等一项或多项信息。
在步骤S44中,当确定所述目标接口为预设类型接口时,控制所述客户端将所述接口请求发送至所述CDN服务端,以使所述CDN服务端基于所述接口数据文件生成与所述接口请求对应的接口响应数据;其中,所述接口数据文件中包含访问所述目标接口时所获取的接口数据。
在本公开实施例中,当确定目标接口为预设类型接口时,服务端控制客户端将接口请求发送至CDN服务端,如服务端向客户端发送消息指令,该消息指令用于指示客户端将接口请求发送至CDN服务端。CDN服务端接收到客户端发送的接口请求后,基于预先存储的接口数据文件生成接口响应数据,并将接口响应数据反馈至客户端。
在本公开实施例中,预设类型接口可以理解为需要降级的接口。可选的,所述确定所述目标接口为预设类型接口步骤包括:当所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,当确定API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,当通过配置中心向客户端下发请求降级指令时,确定所述目标接口为预设类型接口。示例性的,客户端生成接口请求后,将接口请求发送至API服务端,API服务端判断当前该接口请求访问的目标接口处理的QPS请求是否大于预设阈值,若是,则可将目标接口确定为预设类型接口,并且API服务端将目标接口确定为预设类型接口的消息发送至客户端,或者API服务端直接将目标接口处理QPS请求大于预设阈值的消息发送至客户端,客户端接收到目标接口处理QPS请求大于预设阈值的消息时,确定目标接口为预设类型接口,并将接口请求发送至CDN服务端,若否,则API服务端可直接对从客户端接收到的接口请求进行处理。这样设置的好处在于,可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性。又示例性的,客户端生成接口请求后,将接口请求发送至API服务端,当确定API服务端针对客户端发起的接口请求响应常时,确定目标接口为预设类型接口,此时,再将该接口请求转发至CDN服务端。其中,对API服务端针对接口请求响应失败可以包括:对接口请求处理失败、接口请求返回异常及响应接口请求超时等情况。这样设置的好处在于,可以有效解决服务器无法正常响应接口请求的技术问题,有效保证了提供接口请求对应的服务的可用性。再示例性的,当接收到API服务端通过配置中心下发的请求降级指令时,确定目标接口为预设类型接口,例如API服务端的目标接口处理QPS请求较大时,为了缓解API服务端处理接口请求的数据压力,可通过配置中心向客户端发送目标接口对应的请求降级指令,当客户端接收到API服务端通过配置中心下发的请求降级指令时,可直接确定目标接口为预设类型接口,此时,客户端可直接将接口请求发送至CDN服务端。这样设置的好处在于,可以有效降低API服务器处理接口请求的数据压力,提高针对接口请求的响应速度。
在本公开实施例的一个实施方式中,CDN服务端后接收到客户端发送的接口请求发后,对接口请求进行分析,从而获取该接口请求待访问的接口名称、待实现的功能描述、待访问的目标域名及目标域名下待访问的目标接口标识等信息,通过分析接口请求中包含的内容,即可得到该接口请求待访问的目标接口,从而从接口数据文件中提取与目标接口请求待访问的接口对应的接口数据,并将提取的接口数据作为该接口请求对应的接口响应数据。
本公开实施例提供的接口请求处理方法,当接口的每秒钟查询数大于预设阈值时,基于预设轮询周期获取接口的接口返回数据,并将接口返回数据写入文件生成接口数据文件,并将接口数据文件发送至CDN服务端,当确定客户端发起的接口请求待访问的目标接口为预设类型接口时,控制客户端将接口请求发送至CDN服务端,以使CDN服务端基于接口数据文件生成与接口请求对应的接口响应数据,不仅可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度,而且可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性和可用性,大大提高了用户体验。
可选的,本公开实施例还公开了一种接口请求处理方法,应用于服务端,所述方法包括:获取客户端发起的接口请求;获取预先存储的接口数据文件;其中,所述接口数据文件基于实时接口数据动态更新;基于所述接口数据文件生成与所述接口请求对应的接口响应数据,将所述接口响应数据反馈给所述客户端。
可选的,所述服务端包括所述客户端的本地接口服务端、内容分发网络CDN服务端及所述客户端的异地接口服务端中的任意一种。其中,客户端的本地接口服务端可以理解为与发起接口请求的客户端处于同一预设区域或基于预设网络进行数据传输的服务端,客户端的异地接口服务端可以理解为与发起接口请求的客户端处于非同一预设区域或基于非预设网络进行数据传输的服务端。当然,客户端的本地接口服务端还可以理解为预先设定好的服务端;客户端的异地接口服务端同样还可以理解为非预先设定好的服务端。
在一个可选的实施例中,如果所述服务端为CDN服务端或异地接口服务端;则所述获取客户端发起的接口请求步骤包括:接收本地接口服务端转发的所述客户端发起的接口请求;相应的,将所述接口响应数据反馈给所述客户端步骤包括:将所述接口响应数据反馈给所述本地接口服务端,以使所述本地接口服务端将所述接口响应数据转发至所述客户端;或者,将所述接口响应数据直接发送给所述客户端。
示例性的,客户端生成接口请求后,将接口请求发送至本地接口服务端,本地接口服务端可直接将从客户端接收到的接口请求转发至CDN服务端或异地接口服务端,本地接口服务端也可先对从客户端接收到的接口请求进行处理,当对客户端发起的接口请求处理异常时,本地接口服务端将该接口请求转发至CDN服务端或异地接口服务端,本地接口服务端还可判断当前该接口请求访问的目标接口处理的QPS请求是否大于预设阈值,若是,则可直接将该接口请求转发至CDN服务端或异地接口服务端,若否,则本地接口服务端可先对从客户端接收到的接口请求进行处理,当对客户端发起的接口请求处理异常时,再将该接口请求转发至CDN服务端或异地接口服务端。其中,对客户端发起的接口请求处理异常可以包括:对接口请求处理失败、接口请求返回异常及响应接口请求超时等情况。CDN服务端或异地接口服务端接收到客户端发起的接口请求后,根据预先存储的接口数据文件生成与接口请求对应的接口响应数据,并将接口响应数据反馈给客户端。可选的,CDN服务端或异地接口服务端可直接将接口响应数据发送至客户端,也可将接口响应数据发送至本地接口服务端,使本地接口服务端将接口响应数据转发至发起接口请求的客户端。图5是根据一示例性实施例示出的CDN服务端或异地接口服务端与本地接口服务端及客户端进行交互的信令图,可结合该信令图对上述实施例进行理解。
在一个可选的实施例中,如果所述服务端为本地接口服务端;则在获取预先存储的接口数据文件之前,还包括:对所述接口请求进行处理;相应的,所述获取预先存储的接口数据文件步骤包括:当对所述接口请求处理异常时,获取预先存储的接口数据文件。可以理解的是,接口数据文件直接存储在本地接口数据端,当客户端生成接口请求时,将接口请求发送至本地接口服务端,本地接口服务端对接口请求进行处理,当对接口请求处理异常时,可直接基于本地存储的接口数据文件生成与接口请求对应的接口响应数据,并将接口响应数据直接发送至客户端。图6是根据一示例性实施例示出的本地接口服务端与客户端进行交互的信令图,可结合该信令图对上述实施例进行理解。
一个可选的实施例中,所述接口请求中包括所述接口请求待访问的目标接口;在基于所述接口数据文件生成与所述接口请求对应的接口响应数据之前,还包括:获取所述目标接口对应的目标接口降级地址;相应的,所述基于所述接口数据文件生成与所述接口请求对应的接口响应数据步骤包括:根据所述目标接口降级地址在所述接口数据文件中提取与所述接口请求对应的接口响应数据。这样设置的好处在于,可以准确、快速地从接口数据文件中提取接口请求对应的接口响应数据。示例性的,接口请求中包括接口请求待访问的目标接口,其中,可以通过接口请求中包含的接口名称、待实现的功能描述、待访问的目标域名及目标域名下待访问的目标接口标识等一项或多项信息来表征接口请求待访问的目标接口。目标接口降级地址用于指示接口响应数据在接口数据文件中的位置,因此,可根据目标接口降级地址从接口数据文件中提取与接口请求对应的接口响应数据。
图7是根据一示例性实施例示出的另一种接口请求处理方法的流程图,如图7所示,接口请求处理方法用于服务端,包括以下步骤:
在步骤S71中,获取客户端发起的接口请求。
在步骤S72中,获取预先存储的接口数据文件。
其中,接口数据文件基于实时接口数据动态更新。
在步骤S73中,判断接口数据文件是否满足预设更新条件,若是,则执行步骤S74,否则,执行步骤S77。
其中,预设更新条件为更新本地预先存储的接口数据文件的条件,可以理解的是,如果满足预设更新条件,则表明本地预先存储的接口数据文件需要更新,如果未满足预设更新条件,则表明本地预先存储的接口数据文件无需更新。
一个可选的实施方式,可以在服务端设置接口数据文件的有效时长(也即接口数据文件的过期时长),在经过有效时长后(也即从接口数据文件上一次的更新时间开始计算,经过了过期时长),确定接口数据文件满足预设更新条件。一个可选的实施方式,还可以通过判断接口数据文件是否达到预设更新时间,如判断当前时间与上一次更新时间是否达到预设时间阈值,如2分钟等等。可选的,判断接口数据文件是否满足预设更新条件步骤包括:获取接口数据文件的最新更新时间;将当前时间与最新更新时间的时间差与预设时间阈值进行比较;当时间差大于预设时间阈值时,确定接口数据文件满足预设更新条件;当时间差小于预设时间阈值时,确定接口数据文件不满足预设更新条件。可选的,预设时间阈值包括接口数据文件的更新周期。其中,接口数据文件的更新周期可以根据实际情况确定,如果接口数据实时更新较慢,则可设置间隔较短的更新周期,如1分钟;如果接口数据实时更新较快,则可设置间隔时间较长的更新周期,如5分钟。示例性的,更新周期为2分钟,而当前时间与接口数据文件的最新更新时间的时间差为1分钟,显然,时间差小于更新周期,则可确定接口数据文件不满足预设更新条件。而如果更新周期为2分钟,而当前时间与接口数据文件的最新更新时间的时间差为3分钟,显然,时间差大于更新周期,则可确定接口数据文件满足预设更新条件
在步骤S74中,获取实时接口数据。
在步骤S75中,基于实时接口数据更新接口数据文件。
当确定接口数据满足预设更新条件时,获取实时接口数据,其中,实时接口数据可以理解为当前最新的接口数据。示例性的,当确定接口数据满足预设更新条件时,依次向各个接口发送请求,服务端处理请求,并返回相应的接口数据,将返回的接口数据作为实时接口数据。然后基于实时接口数据更新接口数据文件,如利用实时接口数据替换接口数据文件中对应的接口数据。一个可选的实施方式,确定实时接口数据对应的第一接口,基于接口描述信息从接口数据文件中查找与第一接口对应的接口数据,并将查找到的与第一接口对应的接口数据作为被实时接口数据替换的对象。其中,接口描述信息用于指示接口数据文件中各个接口数据对应接口,接口描述信息可以包括接口版本号、访问地址及可实现的功能描述等信息。
在步骤S76中,基于更新后的接口数据文件生成与接口请求对应的接口响应数据,将接口响应数据反馈给客户端。
在步骤S77中,直接基于预先存储的接口数据文件生成与接口请求对应的接口响应数据,将接口响应数据反馈给客户端。
本公开实施例提供的接口请求处理方法,判断接口数据文件是否满足预设更新条件,当接口数据文件满足预设更新条件时,获取实时接口数据,并基于实时接口数据更新预先存储的接口数据文件,然后基于更新后的接口数据文件响应接口请求,在保证有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度的前提下,可有效避免基于接口数据文件响应接口请求时容易出错的情况发生,尽可能使客户端能够获取最新的接口响应数据,提高用户体验。
图8是根据一示例性实施例示出的一种接口请求处理方法的流程图,如图8所示,接口请求处理方法用于电子设备(如智能终端)中,由配置于电子设备中的客户端来执行,该方法包括以下步骤。
在步骤S81中,生成接口请求。
示例性的,当用户打开应用的某一页面时,有可能会需要调用客户端的某些接口,此时生成接口请求。
在步骤S82中,将接口请求发送至服务端,以使服务端对接口请求进行处理生成接口响应数据。
在本公开实施例中,客户端将生成的接口请求发送至服务端,以使服务端对接口请求进行处理生成接口响应数据。示例性的,接口请求对应的请求操作为获取物品A的详细信息,如价格、生产时间及生成商等相关信息,则服务端接收到该接口请求后,执行获取物品A的详细信息的操作,并将操作结果作为接口响应数据,以使客户端接收到该接口响应数据时,对该接口响应数据进行渲染,从而将物品A的详细信息展示给用户。
可选的,服务端包括客户端的本地接口服务端、CDN服务端及客户端的异地接口服务端中的任意一种。
在步骤S83中,接收接口响应数据;其中,接口响应数据基于预先存储的接口数据文件生成,接口数据文件基于实时接口数据动态更新。
在本公开实施例中,客户端接收接口响应数据,并根据接口响应数据执行后续逻辑操作,如渲染界面等。其中,接口响应数据基于预先存储的接口数据文件生成,接口数据文件基于实时接口数据动态更新。
需要说明的是,服务端基于预先存储的接口数据文件生成与接口请求对应的接口响应数据,以及接口数据文件基于实时接口数据动态更新已在上述实施例中记载,此处不再赘述。
本公开实施例提供的接口请求处理方法,客户端生成接口请求后,将接口请求发送至服务端,以使服务端对接口请求进行处理生成接口响应数据,客户端接收接口响应数据,其中,接口响应数据基于预先存储的接口数据文件生成,接口数据文件基于实时接口数据动态更新,不仅可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度,而且可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性和可用性,大大提高了用户体验。
本公开实施例提供的接口请求处理方法,根据目标降级配置信息将接口请求发送至服务端,客户端可以根据目标降级配置信息合理确定服务端响应接口请求的方式。
图9是根据一示例性实施例示出的另一种接口请求处理方法的交互示意图,如图9所示,包括以下步骤:
在步骤S91中,客户端生成接口请求。
在步骤S92中,客户端每隔预设时间段向核心配置下发服务端发送降级配置获取请求。
在步骤S93中,核心配置下发服务端接收到降级配置获取请求时,获取接口降级配置信息表。
在步骤S94中,核心配置下发服务端发送接口降级配置信息表给客户端。
在步骤S95中,客户端从接口降级配置信息表中提取与目标接口匹配的目标降级配置信息。
在步骤S96中,客户端确定目标降级配置信息中的目标接口降级方式。
在步骤S97中,当目标接口降级方式为主动降级时,客户端将接口请求发送至本地接口服务端。
在步骤S98中,本地接口服务端基于预先存储的接口数据文件生成与接口请求对应的接口响应数据。
在步骤S99中,当目标接口降级方式为主动降级时,客户端将接口请求发送至CDN服务端或异地接口服务端。
在步骤S910中,CDN服务端或异地接口服务端基于预先存储的接口数据文件生成与接口请求对应的接口响应数据。
在步骤S911中,当目标接口降级方式为被动降级时,将接口请求发送至本地接口服务端。
在步骤S912中,本地接口服务端对接口请求进行处理。
在步骤S913中,客户端判断本地接口服务端对接口请求处理是否异常。
在步骤S914中,当客户端确定本地接口服务端对接口请求处理异常时,客户端将接口请求转发至CDN服务端或异地接口服务端。
在步骤S915中,CDN服务端或异地接口服务端基于预先存储的接口数据文件生成与接口请求对应的接口响应数据。
在步骤S916中,CDN服务端或异地接口服务端将接口响应数据发送至客户端。
在步骤S917中,本地接口服务端将接口响应数据发送至客户端。
需要说明的是,步骤S97-步骤S98,步骤S99-步骤S910及步骤S911-步骤S915择一执行,步骤S916与步骤S917择一执行,其中,当执行步骤97-步骤S98时,对应执行步骤S917,当执行步骤S99-步骤S910或步骤S911-步骤S915时,对应执行步骤S916。
本公开实施例提供的接口请求处理方法,可根据目标降级配置信息中目标接口降级方式确定接口请求的发送对象(本地接口服务端、CDN服务端或异地接口服务端)及服务端对接口请求的处理方式。其中,当目标接口降级方式为被动降级时,可将接口请求发送至本地接口服务端,以使本地接口服务端对接口请求进行实时处理,这样可以获取最新的接口响应数据,提高用户体验,若本地接口服务端对接口请求处理异常时,可将接口请求转发至CDN服务端或异地接口服务端,以使CDN服务端或异地接口服务端根据预先存储的接口数据文件响应接口请求,可以有效地解决超高QPS请求的情形下,服务器资源不足导致的接口请求无法正常响应的技术问题,有效保证了提供接口请求对应的服务的稳定性和可用性。而当目标接口降级方式为主动降级时,可直接将接口请求转发至CDN服务端或异地接口服务端,以使CDN服务端或异地接口服务端根据预先存储的接口数据文件响应接口请求,可以有效降低服务器处理接口请求的数据压力,提高针对接口请求的响应速度。尤其是将接口请求转发至CDN服务端的情况,可有效保证接口服务故障、机房故障、带宽过载、甚至光纤故障、断电等情形接口服务可用,有效提高用户体验。
图10是根据一示例性实施例示出的一种接口请求处理装置框图。参照图10,该装置可以应用于客户端,包括请求生成单元101,请求发送单元102和数据接收单元103。
请求生成单元101,被配置为执行生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
请求发送单元102,被配置为执行当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据;
数据接收单元103,被配置为执行接收所述接口响应数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。
可选的,所述请求发送单元,包括:
配置获取子单元,被配置为执行当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;
请求发送子单元,被配置为执行当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端。
可选的,所述配置获取子单元,包括:
信息表获取子模块,被配置为执行获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;
配置提取子模块,被配置为执行从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。
可选的,所述信息表获取子模块,被配置为执行:
每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;
接收所述配置中心发送的接口降级配置信息表。
可选的,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;
所述请求发送子单元,包括:
第一请求发送子模块,被配置为执行当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端。
可选的,所述装置还包括:
第二请求发送子模块,被配置为执行当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;
第三请求发送子模块,被配置为执行当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。
可选的,所述目标降级配置信息还包括目标接口降级地址;
所述请求发送子单元,被配置为执行:
将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。
可选的,所述目标降级配置信息还包括目标降级接口路径;
所述请求发送子单元,被配置为执行:
根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种接口请求处理装置框图。参照图2,该装置可以应用于服务端,包括数据获取单元111,文件生成单元112、请求获取单元113及控制单元114。
数据获取单元111,被配置为执行当接口的每秒钟查询数大于预设阈值时,基于预设轮询周期获取所述接口的接口返回数据;
文件生成单元112,被配置为执行将所述接口返回数据写入文件生成接口数据文件,并将所述接口数据文件发送至CDN服务端;
请求获取单元113,被配置为执行获取客户端发起的接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口请求数据;
控制单元114,被配置为执行当确定所述目标接口为预设类型接口时,控制所述客户端将所述接口请求发送至所述CDN服务端,以使所述CDN服务端基于所述接口数据文件生成与所述接口请求对应的接口响应数据;其中,所述接口数据文件中包含访问所述目标接口时所获取的接口数据。
可选的,所述确定所述目标接口为预设类型接口步骤包括:
当所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当通过配置中心向客户端下发请求降级指令时,确定所述目标接口为预设类型接口。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图12是根据一示例性实施例示出的一种服务器的结构框图。如图12所示,该服务器120包括处理器121;用于存储处理器121的可执行指令的存储器122,存储器122可以包括随机存取存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM);其中,处理器121被配置为执行所述指令,以实现上述方法。
图13是根据一示例性实施例示出的一种电子设备的结构框图。如图13所示,该电子设备130包括处理器131;用于存储处理器131的可执行指令的存储器132,存储器132可以包括RAM和ROM;其中,处理器131被配置为执行所述指令,以实现上述方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如存储可执行指令的存储器(122,132),上述指令可由电子设备(服务器或电子设备)的处理器(121,131)执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品中的指令由电子设备(服务器或电子设备)的处理器执行时,实现上述方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种接口请求处理方法,其特征在于,应用于客户端,所述方法包括:
生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据;
接收所述接口响应数据;
其中,所述当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端步骤包括:
当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;
当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端;
其中,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;
当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端,包括:
当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端;
当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。
2.根据权利要求1所述的接口请求处理方法,其特征在于,所述确定所述目标接口为预设类型接口步骤包括:
当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。
3.根据权利要求1所述的接口请求处理方法,其特征在于,所述获取所述目标接口对应的目标降级配置信息步骤包括:
获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;
从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。
4.根据权利要求3所述的接口请求处理方法,其特征在于,所述获取所述接口降级配置信息表步骤包括:
每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;
接收所述配置中心发送的接口降级配置信息表。
5.根据权利要求1所述的接口请求处理方法,其特征在于,所述目标降级配置信息还包括目标接口降级地址;
将所述接口请求发送至CDN服务端步骤包括:
将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。
6.根据权利要求1所述的接口请求处理方法,其特征在于,所述目标降级配置信息还包括目标降级接口路径;
将所述接口请求发送至CDN服务端,包括:
根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。
7.一种接口请求处理装置,其特征在于,应用于客户端,所述装置包括:
请求生成单元,被配置为执行生成接口请求;其中,所述接口请求中包括所述接口请求待访问的目标接口;所述接口请求用于指示通过访问所述目标接口以获取接口数据;
请求发送单元,被配置为执行当确定所述目标接口为预设类型接口时,将所述接口请求发送至CDN服务端,以使所述CDN服务端基于预先存储的接口数据文件生成接口响应数据;其中,所述接口数据文件基于接口返回数据生成,所述接口返回数据为基于预设轮询周期访问API服务端所获取的接口数据,所述接口数据文件中包含访问所述目标接口时所获取的接口数据;
数据接收单元,被配置为执行接收所述接口响应数据;
其中,所述请求发送单元,包括:
配置获取子单元,被配置为执行当确定所述目标接口为预设类型接口时,获取所述目标接口对应的目标降级配置信息;
请求发送子单元,被配置为执行当所述目标降级配置信息满足预设配置条件时,将所述接口请求发送至CDN服务端;
其中,所述目标降级配置信息包括目标接口降级方式,所述目标接口降级方式包括主动降级方式和被动降级方式,所述预设配置条件用于指示所述目标接口降级方式的类型;
所述请求发送子单元,包括:
第一请求发送子模块,被配置为执行当目标接口降级方式为主动降级方式时,将所述接口请求发送至CDN服务端;
第二请求发送子模块,被配置为执行当所述目标接口降级方式为被动降级方式时,将所述接口请求发送至所述API服务端,以使所述API服务端对所述接口请求进行处理;
第三请求发送子模块,被配置为执行当确定所述API服务端对所述接口请求处理异常时,将所述接口请求转发至CDN服务端。
8.根据权利要求7所述的接口请求处理装置,其特征在于,所述确定所述目标接口为预设类型接口步骤包括:
当API服务端中所述目标接口的每秒钟查询数大于预设阈值时,确定所述目标接口为预设类型接口;或者,
当确定所述API服务端针对所述接口请求响应失败时,确定所述目标接口为预设类型接口;或者,
当接收到所述API服务端通过配置中心下发的请求降级指令时,确定所述目标接口为预设类型接口。
9.根据权利要求7所述的接口请求处理装置,其特征在于,所述配置获取子单元,包括:
信息表获取子模块,被配置为执行获取接口降级配置信息表;其中,所述接口降级配置信息表包括各个降级接口的配置信息;
配置提取子模块,被配置为执行从所述接口降级配置信息表中提取与所述目标接口匹配的目标降级配置信息。
10.根据权利要求9所述的接口请求处理装置,其特征在于,所述信息表获取子模块,被配置为执行:
每隔预设时间段向配置中心发送降级配置获取请求;其中,所述降级配置获取请求用于指示获取接口降级配置信息表;
接收所述配置中心发送的接口降级配置信息表。
11.根据权利要求7所述的接口请求处理装置,其特征在于,所述目标降级配置信息还包括目标接口降级地址;
所述请求发送子单元,被配置为执行:
将所述目标接口降级地址及所述接口请求发送至CDN服务端,其中,所述目标接口降级地址用于指示所述接口响应数据在所述接口数据文件中的位置。
12.根据权利要求7所述的接口请求处理装置,其特征在于,所述目标降级配置信息还包括目标降级接口路径;
所述请求发送子单元,被配置为执行:
根据所述目标降级接口路径将所述接口请求发送至所述目标降级接口路径指向的CDN服务端。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的接口请求处理方法。
14.一种存储介质,当所述存储介质中的命令由服务器的处理器执行时,使得服务器能够执行如权利要求1至6中任一项所述的接口请求处理方法。
CN202010802376.XA 2020-08-11 2020-08-11 接口请求处理方法、装置、设备及存储介质 Active CN111988387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010802376.XA CN111988387B (zh) 2020-08-11 2020-08-11 接口请求处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010802376.XA CN111988387B (zh) 2020-08-11 2020-08-11 接口请求处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111988387A CN111988387A (zh) 2020-11-24
CN111988387B true CN111988387B (zh) 2023-05-30

Family

ID=73433917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010802376.XA Active CN111988387B (zh) 2020-08-11 2020-08-11 接口请求处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111988387B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463452A (zh) * 2020-12-03 2021-03-09 深圳市欢太科技有限公司 一种数据服务方法、装置和存储介质
CN113489739B (zh) * 2021-07-16 2024-03-08 北京顶象技术有限公司 基于CDN的抗DDoS攻击的业务稳定性方法和装置
CN115658794B (zh) * 2022-12-09 2023-05-12 深圳高灯计算机科技有限公司 数据查询方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535901A (zh) * 2019-07-05 2019-12-03 中国平安财产保险股份有限公司 服务降级方法、装置、计算机设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100451976C (zh) * 2007-07-23 2009-01-14 清华大学 基于海量数据分级存储系统的迁移管理方法
CN101309167B (zh) * 2008-06-27 2011-04-20 华中科技大学 基于集群备份的容灾系统及方法
CN101754127A (zh) * 2009-12-22 2010-06-23 中兴通讯股份有限公司 消息获取和处理方法、客户端、服务器和通信系统
US9642169B2 (en) * 2012-01-11 2017-05-02 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for facilitating access to a content source through a wireless mobile network
CN105677466B (zh) * 2015-12-31 2019-08-30 百度在线网络技术(北京)有限公司 第三方应用接口的降级处理的方法和装置
CN107222567A (zh) * 2017-07-07 2017-09-29 北京京东尚科信息技术有限公司 处理数据请求的方法、装置及服务集群
CN109818994A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 用于代理端的信息处理方法和装置
US10572316B2 (en) * 2018-05-14 2020-02-25 International Business Machines Corporation Adaptable pages, widgets and features based on real time application performance
CN109120709A (zh) * 2018-09-03 2019-01-01 杭州云创共享网络科技有限公司 一种缓存方法、装置、设备及介质
CN109714208B (zh) * 2018-12-29 2022-01-21 武汉市烽视威科技有限公司 一种设备纳入网管的方法、存储介质及电子设备
CN110598149A (zh) * 2019-08-15 2019-12-20 平安普惠企业管理有限公司 网页访问方法、装置和存储介质
CN111355612A (zh) * 2020-02-28 2020-06-30 中国工商银行股份有限公司 源站故障的cdn节点应急处理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110535901A (zh) * 2019-07-05 2019-12-03 中国平安财产保险股份有限公司 服务降级方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Razale Ibrahim."A performance-oriented interface design model of web applications".《IEEE》.2011,全文. *
谢晓华."电商平台下仓储管理接口系统的研究与实现".《中国优秀硕士学位论文全文数据库》.2020,全文. *

Also Published As

Publication number Publication date
CN111988387A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN111988387B (zh) 接口请求处理方法、装置、设备及存储介质
WO2018133306A1 (zh) 内容分发网络中的调度方法和设备
US20180205976A1 (en) Method and apparatus of obtaining video fragment
CN103124263B (zh) 一种广告推送系统及广告推送设备、广告服务器
CN112738140B (zh) 一种基于WebRTC的视频流传输方法、装置、存储介质和设备
JP2019537767A5 (zh)
WO2021237433A1 (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN104834722A (zh) 基于cdn的内容管理系统
CN111935536B (zh) 一种直播间请求响应方法、装置、设备及存储介质
CN102394880B (zh) 内容分发网络中的跳转响应处理方法和设备
US11889133B2 (en) Burst traffic processing method, computer device and readable storage medium
CN110545327B (zh) 一种信息推送方法及系统
CN112751748B (zh) 会话消息管理方法、装置、服务器和可读存储介质
CN109547511A (zh) 一种web消息实时推送方法、服务器、客户端及系统
US10848586B2 (en) Content delivery network (CDN) for uploading, caching and delivering user content
CN114024972B (zh) 一种长连接通信方法、系统、装置、设备及存储介质
US10038664B2 (en) Terminal status subscription method, apparatus, and system
CN104378436A (zh) 一种基于服务器推送的信息推送系统及推送方法
CN111541555A (zh) 群聊优化方法及相关产品
CN106411713B (zh) 一种状态通知方法及服务器
CN113315689B (zh) 信息处理方法、系统、电子设备和可读存储介质
CN112533012B (zh) 直播间互动信息的传输方法、装置、设备和存储介质
CN109088918A (zh) 一种交互方法、客户端设备及服务端设备
CN109995838B (zh) 虚拟内容调度方法、装置、设备及计算机可读存储介质
CN107249017B (zh) 一种通过cdn网络获取hls内容的方法及服务器

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