CN110290210B - 接口调用系统中不同接口流量比例自动调配方法及装置 - Google Patents
接口调用系统中不同接口流量比例自动调配方法及装置 Download PDFInfo
- Publication number
- CN110290210B CN110290210B CN201910568648.1A CN201910568648A CN110290210B CN 110290210 B CN110290210 B CN 110290210B CN 201910568648 A CN201910568648 A CN 201910568648A CN 110290210 B CN110290210 B CN 110290210B
- Authority
- CN
- China
- Prior art keywords
- calling
- request
- data
- data provider
- interface
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Abstract
本发明提供了一种接口调用系统中不同接口流量比例自动调配方法及装置,其中方法包括:接收客户端发送的查询请求;获取第一流量调度比例数据;生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,如果失败,将第一数据提供商接口进行接口熔断,获取第二流量调度比例数据;在第二调用请求调用成功时按照第二流量调度比例数据将查询请求发送至第二数据提供商,将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;如果成功,按照第一流量调度比例数据将查询请求发送至第一数据提供商,将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
Description
技术领域
本发明涉及流量比例调配技术领域,尤其涉及一种接口调用系统中不同接口流量比例自动调配方法及装置。
背景技术
数据处理服务的数据往往来源于第三方数据提供商,即通过调用第三方数据提供商的接口获取数据。若同一类型的数据仅来自一家第三方数据提供商,当这家数据提供商接口出现不稳定的时候,数据处理服务将不能正常的获取数据,进而影响业务的正常运作。为了降低第三方数据提供商服务可能出现的不稳定给企业带来的风险,数据处理服务获取的每一种数据,需要有两家及以上的数据提供商,同时又为了避免因为数据处理服务调用量变大,冲击一家第三方数据提供商,往往需要同时调用多家接口服务。
为了满足上面的要求,需要在数据处理服务和第三方数据提供商服务之间,提供一个用于流量分配的适配服务,用于均衡数据请求的流量。
然而现有的适配服务主要针对多个服务节点的同一接口进行流量负载均衡,其具有如下缺点:
1、不能对多个外部接口返回的结果进行统一格式处理;
2、这种负载均衡软件只能使用在内部服务流量负载上,对外部第三方不同接口的流量调配不支持;
3、不能对被调用服务返回的业务错误码进行分析,也就不会将业务层级的失败响应作为流量调配的一个决策指标。比如当负载均衡软件收到某个服务节点http响应的status code为200,但是报文消息中的业务字段code的值为103,表示调用次数不足。类似这种业务层面的错误,当前负载均衡软件是不会检测的,即便所有的来自某个调用服务节点都是这个业务错误,负载均衡软件依然会向它继续转发请求流量。
因此,提供一种不仅能够支持静态和动态的流量调配,还需要能够将不同数据提供商的数据进行兼容处理,处理成统一的格式输出给数据处理服务的适配服务成为亟待解决的问题。
发明内容
本发明旨在提供一种克服上述问题之一或者至少部分地解决上述任一问题的接口调用系统中不同接口流量比例自动调配方法及装置。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明的一个方面提供了一种接口调用系统中不同接口流量比例自动调配方法,包括:S1,接收客户端发送的查询请求;S2,获取配置模块配置的第一流量调度比例数据;S3,生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,如果第一调用请求调用失败,执行S4,如果第一调用请求调用成功,执行S7;S4,将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据;S5,获取配置模块配置的第二流量调度比例数据;S6,生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功,如果第二调用请求调用成功,按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;S7,按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
其中,S4将第一数据提供商接口进行接口熔断之后,方法还包括:按照预设熔断时间生成探测调用请求调用第一数据提供商接口;判断探测调用请求是否调用成功;如果探测调用请求调用成功,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;如果探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的步骤。
其中,判断第一调用请求是否调用成功包括:判断调用第一数据提供商接口的失败次数小于等于预设失败次数阈值;判断第一调用请求是否调用失败包括:判断调用第一数据提供商接口的失败次数大于预设失败次数阈值;或者判断第一调用请求是否调用成功包括:判断调用第一数据提供商接口的失败率小于等于符合预设失败率阈值;判断第一调用请求是否调用失败包括:判断调用第一数据提供商接口的失败率大于符合预设失败率阈值;以及判断第二调用请求是否调用成功包括:判断调用第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用第二数据提供商接口的失败率小于等于符合预设失败率阈值。
其中,调用失败包括:HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。
本发明另一方面提供了一种接口调用系统中不同接口流量比例自动调配装置,包括:接收模块,用于接收客户端发送的查询请求;获取模块,用于获取配置模块配置的第一流量调度比例数据;调用模块,用于生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,如果第一调用请求调用失败,通知熔断模块,如果第一调用请求调用成功,通知处理模块;熔断模块,用于将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据;获取模块,还用于获取配置模块配置的第二流量调度比例数据;调用模块,还用于生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功,如果第二调用请求调用成功,通知处理模块;处理模块,用于按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
其中,熔断模块在将第一数据提供商接口进行接口熔断之后,还用于按照预设熔断时间生成探测调用请求调用第一数据提供商接口;判断探测调用请求是否调用成功;如果探测调用请求调用成功,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;如果探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的步骤。
其中,调用模块通过如下方式判断第一调用请求是否调用成功:调用模块,具体用于判断调用第一数据提供商接口的失败次数小于等于预设失败次数阈值;调用模块通过如下方式判断第一调用请求是否调用失败:调用模块,具体用于判断调用第一数据提供商接口的失败次数大于预设失败次数阈值;或者调用模块通过如下方式判断第一调用请求是否调用成功:调用模块,具体用于判断调用第一数据提供商接口的失败率小于等于符合预设失败率阈值;调用模块通过如下方式判断第一调用请求是否调用失败:调用模块,具体用于判断调用第一数据提供商接口的失败率大于符合预设失败率阈值;
以及
调用模块通过如下方式判断第二调用请求是否调用成功:调用模块,具体用于判断调用第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用第二数据提供商接口的失败率小于等于符合预设失败率阈值。
其中,调用失败包括:HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。
本发明又一方面提供了一种接口调用系统中不同接口流量比例自动调配装置,包括:配置模块、连接配置模块的处理模块以及连接处理模块的统计监测模块;其中:处理模块接收客户端发送的查询请求,获取配置模块配置的第一流量调度比例数据;统计监测模块生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功;处理模块获取统计监测模块监测的第一调用请求调用失败的结果,将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据,获取配置模块配置的第二流量调度比例数据;统计监测模块生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功;处理模块获取统计监测模块监测的第二调用请求调用成功的结果,按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;处理模块获取统计监测模块监测的第一调用请求调用成功的结果,按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
其中,处理模块在将第一数据提供商接口进行接口熔断之后,还用于通知统计监测模块按照预设熔断时间生成探测调用请求调用第一数据提供商接口,判断探测调用请求是否调用成功;处理模块获取统计监测模块监测的探测调用请求调用成功的结果,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;处理模块获取统计监测模块探测调用请求调用失败的结果,通知统计监测模块继续执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的流程。
由此可见,本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法及装置,可以对来自不同数据提供商的同一类型数据,统一适配成相同的格式;可以对外部第三方不同接口的流量进行调配负载。
进一步,根据调用结果,统计失败次数和失败率时,不仅对HTTP请求响应码进行判断,而且对业务层级的结果码进行判断处理,更加精确的判断接口的健康状态。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法的流程图;
图2为本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置的结构示意图;
图3为本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置的另一种结构示意图;
图4为本发明实施例提供的一种具体的流量调度机制示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法的流程图,参见图1,本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法,包括:
S1,接收客户端发送的查询请求;
S2,获取配置模块配置的第一流量调度比例数据。
具体地,可以预先在配置模块配置流量调度比例数据,以便进行负载均衡,由此可以实现对外部第三方不同接口的流量进行调配的目的。
作为本发明实施例的一个可选实施方式,还可以在配置模块预先配置调用第一数据提供商接口的失败次数的预设失败次数阈值,调用第二数据提供商接口的失败次数的预设失败次数阈值,上述两个阈值可以相同也可以不同,可以根据实际需要进行设置。
配置模块也可以预先配置预设熔断时间,以保证被熔断的数据提供商的接口可以被探测是否恢复健康。
S3,生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,如果第一调用请求调用失败,执行S4,如果第一调用请求调用成功,执行S7。
作为本发明实施例的一个可选实施方式,判断第一调用请求是否调用成功包括:判断调用第一数据提供商接口的失败次数小于等于预设失败次数阈值;判断第一调用请求是否调用失败包括:判断调用第一数据提供商接口的失败次数大于预设失败次数阈值;或者判断第一调用请求是否调用成功包括:判断调用第一数据提供商接口的失败率小于等于符合预设失败率阈值;判断第一调用请求是否调用失败包括:判断调用第一数据提供商接口的失败率大于符合预设失败率阈值。具体地,当某个数据提供商接口调用失败次数或失败率达到某个阈值时(预先在配置模块进行配置),此时可以认为该接口的是不健康的,对本数据提供商的接口记性熔断处理。不健康接口熔断后,该接口即不可被调用,重新发起动态流量调配(通知配置模块进行配置),即把原本流向不健康接口的请求,调度到其他健康的提供商接口上,保证服务的正常运作。
作为本发明实施例的一个可选实施方式,调用失败包括:HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。由此可以根据调用结果,统计失败次数和失败率时,不仅对HTTP请求响应码进行判断,而且对业务层级的结果码进行判断处理,更加精确的判断接口的健康状态。具体地,通过分析响应结果,可以判断数据提供商的接口是否健康:首先通过调用返回的HTTP响应码,如果HTTP响应码为非200时,直接判断查询失败;如果HTTP响应码为200,会继续根据响应结果业务状态码判断,从业务层级判断调用是否成功,比如报文消息中的业务字段code的值为103,表示调用次数不足,这种情况,从业务层面,依然会被认为是一次失败调用。实际应用中可以以一分钟为一个统计窗口,以数据提供商的接口为单位,计算每个接口在一个统计窗口内,调用的失败次数,以及失败调用的百分比。
S4,将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据。
作为本发明实施例的一个可选实施方式,S4将第一数据提供商接口进行接口熔断之后,本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法还包括:按照预设熔断时间生成探测调用请求调用第一数据提供商接口;判断探测调用请求是否调用成功;如果探测调用请求调用成功,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;如果探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的步骤。其中预设熔断时间可以根据实际需要进行预先设置,例如可以设置为5分钟等。具体地,不健康数据提供商的接口不会一直熔断,当熔断5分钟后(例如预先设置默认为5分钟),可以将该不健康的数据提供商的接口的熔断状态改为半熔断状态,在半熔断状态下,可以向该接口发送一次调用,用于探测接口是否恢复健康,如果调用成功,就认为该接口恢复正常,解除熔断,可以通知配置模块重新配置流量比例,之后可以按照新配置的流量比例,把流量分配给该接口;如果调用失败(不仅包括HTTP调用状态码非200,也包括HTTP响应码码在200时,业务状态码失败的情况),就认为接口仍为不健康,继续熔断5分钟,5分钟后又会重复进行探测操作,直到接口恢复正常,解除熔断为止。
S5,获取配置模块配置的第二流量调度比例数据;
S6,生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功,如果第二调用请求调用成功,按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
作为本发明实施例的一个可选实施方式,判断第二调用请求是否调用成功包括:判断调用第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用第二数据提供商接口的失败率小于等于符合预设失败率阈值。在本发明中仅以两个数据提供商接口的调用为例进行的说明,如果第二数据提供商接口调用仍然失败,则继续重新配置流量调度比例数据,进行其他数据提供商接口的判断,直到确定调用成功的数据提供商接口,按照流量调度比例数据进行数据交互。可以理解的是,无论采用多少次判断接口调用是否成功的流程,均应属于本发明的保护范围。
S7,按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
由此可见,本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法,可以对来自不同数据提供商的同一类型数据,统一适配成相同的格式;可以对外部第三方不同接口的流量进行调配负载。
图2示出了本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置的结构示意图,该接口调用系统中不同接口流量比例自动调配装置应用于上述接口调用系统中不同接口流量比例自动调配方法,以下仅对接口调用系统中不同接口流量比例自动调配装置的结构进行简要说明,其他未尽事宜,请参照上述接口调用系统中不同接口流量比例自动调配方法的相关说明,在此不再赘述。参见图2,本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置,包括:
接收模块201,用于接收客户端发送的查询请求;
获取模块202,用于获取配置模块配置的第一流量调度比例数据;
调用模块203,用于生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,如果第一调用请求调用失败,通知熔断模块204,如果第一调用请求调用成功,通知处理模块205;
熔断模块204,用于将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据;
获取模块202,还用于获取配置模块配置的第二流量调度比例数据;
调用模块203,还用于生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功,如果第二调用请求调用成功,通知处理模块205;
处理模块205,用于按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
作为本发明实施例的一个可选实施方式,熔断模块204在将第一数据提供商接口进行接口熔断之后,还用于按照预设熔断时间生成探测调用请求调用第一数据提供商接口;判断探测调用请求是否调用成功;如果探测调用请求调用成功,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;如果探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的步骤。
作为本发明实施例的一个可选实施方式,调用模块203通过如下方式判断第一调用请求是否调用成功:调用模块203,具体用于判断调用第一数据提供商接口的失败次数小于等于预设失败次数阈值;调用模块203通过如下方式判断第一调用请求是否调用失败:调用模块203,具体用于判断调用第一数据提供商接口的失败次数大于预设失败次数阈值;或者调用模块203通过如下方式判断第一调用请求是否调用成功:调用模块203,具体用于判断调用第一数据提供商接口的失败率小于等于符合预设失败率阈值;调用模块203通过如下方式判断第一调用请求是否调用失败:调用模块203,具体用于判断调用第一数据提供商接口的失败率大于符合预设失败率阈值;以及调用模块203通过如下方式判断第二调用请求是否调用成功:调用模块203,具体用于判断调用第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用第二数据提供商接口的失败率小于等于符合预设失败率阈值。
作为本发明实施例的一个可选实施方式,调用失败包括:HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。由此可以根据调用结果,统计失败次数和失败率时,不仅对HTTP请求响应码进行判断,而且对业务层级的结果码进行判断处理,更加精确的判断接口的健康状态。
由此可见,本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置,可以对来自不同数据提供商的同一类型数据,统一适配成相同的格式;可以对外部第三方不同接口的流量进行调配负载。
图3示出了本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置的另一种结构示意图,参见图3,其中通过配置模块进行配置,通过处理模块和统计监测模块实现本发明实施例提供的接口调用系统中不同接口流量比例自动调配方法,在实际应用中,也可不对处理模块和统计监测模块进行划分,集成为一个处理装置(例如图2),参见图3,本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置,包括:
配置模块、连接配置模块的处理模块以及连接处理模块的统计监测模块;其中,处理模块连接请求端(客户端)以及不同的数据提供商(例如数据提供商A(第一数据提供商)、数据提供商B(第二数据提供商))。
其中,处理模块接收客户端发送的查询请求,获取配置模块配置的第一流量调度比例数据,统计监测模块生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功,处理模块获取统计监测模块监测的第一调用请求调用失败的结果,将第一数据提供商接口进行接口熔断,通知配置模块重新配置流量调度比例数据,获取配置模块配置的第二流量调度比例数据,统计监测模块生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功,处理模块获取统计监测模块监测的第二调用请求调用成功的结果,按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端;处理模块获取统计监测模块监测的第一调用请求调用成功的结果,按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至客户端。
作为本发明实施例的一个可选实施方式,处理模块在将第一数据提供商接口进行接口熔断之后,还用于通知统计监测模块按照预设熔断时间生成探测调用请求调用第一数据提供商接口,判断探测调用请求是否调用成功;处理模块获取统计监测模块监测的探测调用请求调用成功的结果,将第一数据提供商接口进行熔断解除,通知配置模块重新配置流量调度比例数据;处理模块获取统计监测模块探测调用请求调用失败的结果,通知统计监测模块继续执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的流程。
作为本发明实施例的一个可选实施方式,统计监测模块通过如下方式判断第一调用请求是否调用成功:统计监测模块判断调用第一数据提供商接口的失败次数小于等于预设失败次数阈值;统计监测模块通过如下方式判断第一调用请求是否调用失败:统计监测模块判断调用第一数据提供商接口的失败次数大于预设失败次数阈值;或者统计监测模块通过如下方式判断第一调用请求是否调用成功:统计监测模块判断调用第一数据提供商接口的失败率小于等于符合预设失败率阈值;统计监测模块通过如下方式判断第一调用请求是否调用失败:统计监测模块判断调用第一数据提供商接口的失败率大于符合预设失败率阈值;以及统计监测模块通过如下方式判断第二调用请求是否调用成功:统计监测模块判断调用第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用第二数据提供商接口的失败率小于等于符合预设失败率阈值。
作为本发明实施例的一个可选实施方式,调用失败包括:HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。由此可以根据调用结果,统计失败次数和失败率时,不仅对HTTP请求响应码进行判断,而且对业务层级的结果码进行判断处理,更加精确的判断接口的健康状态。
具体地,配置模块,提供流量初始的权重配置,即调用不同数据提供商接口的流量分配比例。同时提供不同数据提供商响应结果的兼容配置,通过这些兼容配置,把不同数据提供商的不同响应结果处理成统一的格式,然后返回给客户端。
统计监控模块,通过分析响应结果,判断数据提供商的接口是否健康。统计监控模块首先通过调用返回的HTTP响应码,如果HTTP响应码为非200时,直接判断查询失败;如果HTTP响应码为200,会继续根据响应结果业务状态码判断,从业务层级判断调用是否成功,比如报文消息中的业务字段code的值为103,表示调用次数不足,这种情况,从业务层面,依然会被认为是一次失败调用。统计监控模块以一分钟为一个统计窗口,以数据提供商的接口为单位,计算每个接口在一个统计窗口内,调用的失败次数,以及失败调用的百分比。
处理模块,主要包括流量分流层和适配层处理。
分流层调度的机制如下:
1)服务开始运行时,处理模块通过读取配置模块的配置,根据配置的流量分配比例,进行流量分配。
2)当某个数据提供商接口调用失败次数或失败率达到某个阈值时(相关的阈值配置,配置在配置模块),处理模块就会认为该接口的是不健康的,对本数据提供商的接口记性熔断处理。不健康接口熔断后,该接口即不可被调用,系统会发起动态流量调配,即把原本流向不健康接口的请求,调度到其他健康的提供商接口上,保证服务的正常运作。
3)不健康数据提供商的接口不会一直熔断,当熔断5分钟后(默认为5分钟,该值在配置模块进行配置),系统就会把熔断状态改为半熔断状态,半熔断状态下,系统会向该接口发送一次调用,用于探测接口是否恢复健康,如果调用成功,就认为该接口恢复正常,解除熔断,系统会按照配置的流量比例,把流量分配给该接口;如果调用失败(不仅包括HTTP调用状态码非200,也包括HTTP响应码码在200时,业务状态码失败的情况),就认为接口仍为不健康,继续熔断5分钟,5分钟后又会重复进行探测操作,直到接口恢复正常,解除熔断为止。
值得说明的是,这只是本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置的另一种划分,但本发明并不局限与该种划分结构。
以下提供一种具体的流量调度机制示意图,参见图4,该具体的流量调度机制包括:
1、客户端发起一个查询请求到本系统;
2、系统的分流装置读取配置模块的流量调度比例数据;
3、分流装置根据流量的配置比例调用请求到数据提供商;
4、统计监测装置,获取数据提供商接口响应,判断调用请求是否成功;
5、结果返回给适配层,处理后返回给客户端。
其中,该流量调度机制应用于处理模块的适配层,通过配置模块的配置路径,来解析数据提供商的接口的响应,把来自不同数据提供商的同一类型的数据,处理成相同的格式返回给客户。
由此可见,本发明实施例提供的接口调用系统中不同接口流量比例自动调配装置,可以对来自不同数据提供商的同一类型数据,统一适配成相同的格式;可以对外部第三方不同接口的流量进行调配负载。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种接口调用系统中不同接口流量比例自动调配方法,其特征在于,包括:
S1,接收客户端发送的查询请求;
S2,获取配置模块配置的第一流量调度比例数据;
S3,生成第一调用请求调用第一数据提供商接口,判断所述第一调用请求是否调用成功,如果所述第一调用请求调用失败,执行S4,如果所述第一调用请求调用成功,执行S7;
S4,将所述第一数据提供商接口进行接口熔断,通知所述配置模块重新配置流量调度比例数据;
S5,获取所述配置模块配置的第二流量调度比例数据;
S6,生成第二调用请求调用第二数据提供商接口,判断所述第二调用请求是否调用成功,如果所述第二调用请求调用成功,按照所述第二流量调度比例数据将所述查询请求发送至所述第二数据提供商,获取所述第二数据提供商根据所述查询请求得到的查询结果,并将所述查询结果进行适配,生成预设格式的反馈数据,将所述预设格式的反馈数据发送至所述客户端;
S7,按照所述第一流量调度比例数据将所述查询请求发送至所述第一数据提供商,获取所述第一数据提供商根据所述查询请求得到的查询结果,并将所述查询结果进行适配,生成预设格式的反馈数据,将所述预设格式的反馈数据发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述S4将所述第一数据提供商接口进行接口熔断之后,所述方法还包括:
按照预设熔断时间生成探测调用请求调用所述第一数据提供商接口;
判断所述探测调用请求是否调用成功;
如果所述探测调用请求调用成功,将所述第一数据提供商接口进行熔断解除,通知所述配置模块重新配置流量调度比例数据;
如果所述探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用所述第一数据提供商接口的步骤。
3.根据权利要求1所述的方法,其特征在于,
所述判断所述第一调用请求是否调用成功包括:
判断调用所述第一数据提供商接口的失败次数小于等于预设失败次数阈值;
所述判断所述第一调用请求是否调用失败包括:
判断调用所述第一数据提供商接口的失败次数大于预设失败次数阈值;
或者
所述判断所述第一调用请求是否调用成功包括:
判断调用所述第一数据提供商接口的失败率小于等于符合预设失败率阈值;
所述判断所述第一调用请求是否调用失败包括:
判断调用所述第一数据提供商接口的失败率大于符合预设失败率阈值;
以及
所述判断所述第二调用请求是否调用成功包括:
判断调用所述第二数据提供商接口的失败次数小于等于预设失败次数阈值;
或者
判断调用所述第二数据提供商接口的失败率小于等于符合预设失败率阈值。
4.根据权利要求1所述的方法,其特征在于,调用失败包括:
HTTP调用状态码非200;以及HTTP响应码在200时,业务状态码失败。
5.一种接口调用系统中不同接口流量比例自动调配装置,其特征在于,包括:
接收模块,用于接收客户端发送的查询请求;
获取模块,用于获取配置模块配置的第一流量调度比例数据;
调用模块,用于生成第一调用请求调用第一数据提供商接口,判断所述第一调用请求是否调用成功,如果所述第一调用请求调用失败,通知熔断模块,如果所述第一调用请求调用成功,通知处理模块;
所述熔断模块,用于将所述第一数据提供商接口进行接口熔断,通知所述配置模块重新配置流量调度比例数据;
所述获取模块,还用于获取所述配置模块配置的第二流量调度比例数据;
所述调用模块,还用于生成第二调用请求调用第二数据提供商接口,判断所述第二调用请求是否调用成功,如果所述第二调用请求调用成功,通知所述处理模块;
所述处理模块,用于按照所述第二流量调度比例数据将所述查询请求发送至所述第二数据提供商,获取所述第二数据提供商根据所述查询请求得到的查询结果,并将所述查询结果进行适配,生成预设格式的反馈数据,将所述预设格式的反馈数据发送至所述客户端;按照所述第一流量调度比例数据将所述查询请求发送至所述第一数据提供商,获取所述第一数据提供商根据所述查询请求得到的查询结果,并将所述查询结果进行适配,生成预设格式的反馈数据,将所述预设格式的反馈数据发送至所述客户端。
6.根据权利要求5所述的装置,其特征在于,所述熔断模块在将所述第一数据提供商接口进行接口熔断之后,还用于按照预设熔断时间生成探测调用请求调用所述第一数据提供商接口;判断所述探测调用请求是否调用成功;如果所述探测调用请求调用成功,将所述第一数据提供商接口进行熔断解除,通知所述配置模块重新配置流量调度比例数据;如果所述探测调用请求调用失败,则返回执行按照预设熔断时间生成探测调用请求调用所述第一数据提供商接口的步骤。
7.根据权利要求5所述的装置,其特征在于,所述调用模块通过如下方式判断所述第一调用请求是否调用成功:所述调用模块,具体用于判断调用所述第一数据提供商接口的失败次数小于等于预设失败次数阈值;所述调用模块通过如下方式判断所述第一调用请求是否调用失败:所述调用模块,具体用于判断调用所述第一数据提供商接口的失败次数大于预设失败次数阈值;
或者
所述调用模块通过如下方式判断所述第一调用请求是否调用成功:所述调用模块,具体用于判断调用所述第一数据提供商接口的失败率小于等于符合预设失败率阈值;所述调用模块通过如下方式判断所述第一调用请求是否调用失败:所述调用模块,具体用于判断调用所述第一数据提供商接口的失败率大于符合预设失败率阈值;
以及
所述调用模块通过如下方式判断所述第二调用请求是否调用成功:所述调用模块,具体用于判断调用所述第二数据提供商接口的失败次数小于等于预设失败次数阈值;或者判断调用所述第二数据提供商接口的失败率小于等于符合预设失败率阈值。
8.根据权利要求5所述的装置,其特征在于,调用失败包括:
HTTP调用状态码非200;以及HTTP响应码码在200时,业务状态码失败。
9.一种接口调用系统中不同接口流量比例自动调配装置,其特征在于,包括:
配置模块、连接所述配置模块的处理模块以及连接所述处理模块的统计监测模块;其中:
所述处理模块接收客户端发送的查询请求,获取所述配置模块配置的第一流量调度比例数据;
所述统计监测模块生成第一调用请求调用第一数据提供商接口,判断第一调用请求是否调用成功;
所述处理模块获取所述统计监测模块监测的第一调用请求调用失败的结果,将第一数据提供商接口进行接口熔断,通知所述配置模块重新配置流量调度比例数据,获取所述配置模块配置的第二流量调度比例数据;
所述统计监测模块生成第二调用请求调用第二数据提供商接口,判断第二调用请求是否调用成功;
所述处理模块获取所述统计监测模块监测的第二调用请求调用成功的结果,按照第二流量调度比例数据将查询请求发送至第二数据提供商,获取第二数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至所述客户端;所述处理模块获取所述统计监测模块监测的第一调用请求调用成功的结果,按照第一流量调度比例数据将查询请求发送至第一数据提供商,获取第一数据提供商根据查询请求得到的查询结果,并将查询结果进行适配,生成预设格式的反馈数据,将预设格式的反馈数据发送至 所述客户端。
10.根据权利要求9所述的装置,其特征在于,处理模块在将第一数据提供商接口进行接口熔断之后,还用于通知所述统计监测模块按照预设熔断时间生成探测调用请求调用第一数据提供商接口,判断探测调用请求是否调用成功;
所述处理模块获取所述统计监测模块监测的探测调用请求调用成功的结果,将第一数据提供商接口进行熔断解除,通知所述配置模块重新配置流量调度比例数据;
所述处理模块获取所述统计监测模块探测调用请求调用失败的结果,通知所述统计监测模块继续执行按照预设熔断时间生成探测调用请求调用第一数据提供商接口的流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910568648.1A CN110290210B (zh) | 2019-06-27 | 2019-06-27 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910568648.1A CN110290210B (zh) | 2019-06-27 | 2019-06-27 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110290210A CN110290210A (zh) | 2019-09-27 |
CN110290210B true CN110290210B (zh) | 2022-05-10 |
Family
ID=68019303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910568648.1A Active CN110290210B (zh) | 2019-06-27 | 2019-06-27 | 接口调用系统中不同接口流量比例自动调配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110290210B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472879B (zh) * | 2021-06-29 | 2023-12-08 | 中国平安财产保险股份有限公司 | 一种服务请求的方法、装置、计算机设备及存储介质 |
CN116974948B (zh) * | 2023-09-22 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 业务系统测试方法、系统、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1502468A1 (en) * | 2002-05-08 | 2005-02-02 | Aran Communications Limited | Telecommunications network subscriber experience measurement |
CN107659431A (zh) * | 2017-08-15 | 2018-02-02 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN109600384A (zh) * | 2018-12-28 | 2019-04-09 | 江苏满运软件科技有限公司 | Rpc接口升级中流量切换方法、系统、设备及存储介质 |
CN109710447A (zh) * | 2019-01-08 | 2019-05-03 | 网易无尾熊(杭州)科技有限公司 | 用于数据访问的方法、装置、介质和计算设备 |
CN109726062A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 代理服务器的下线方法和控制服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327475B2 (en) * | 2016-05-09 | 2022-05-10 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for intelligent collection and analysis of vehicle data |
-
2019
- 2019-06-27 CN CN201910568648.1A patent/CN110290210B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1502468A1 (en) * | 2002-05-08 | 2005-02-02 | Aran Communications Limited | Telecommunications network subscriber experience measurement |
CN107659431A (zh) * | 2017-08-15 | 2018-02-02 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN109726062A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 代理服务器的下线方法和控制服务器 |
CN109600384A (zh) * | 2018-12-28 | 2019-04-09 | 江苏满运软件科技有限公司 | Rpc接口升级中流量切换方法、系统、设备及存储介质 |
CN109710447A (zh) * | 2019-01-08 | 2019-05-03 | 网易无尾熊(杭州)科技有限公司 | 用于数据访问的方法、装置、介质和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110290210A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546644B2 (en) | Bandwidth control method and apparatus, and device | |
CN107872402B (zh) | 全局流量调度的方法、装置及电子设备 | |
US9128792B2 (en) | Systems and methods for installing, managing, and provisioning applications | |
CN110764963B (zh) | 一种服务异常处理方法、装置及设备 | |
CN107294799B (zh) | 一种分布式系统中节点的处理方法和装置 | |
US9235491B2 (en) | Systems and methods for installing, managing, and provisioning applications | |
CN108737132B (zh) | 一种告警信息处理方法及装置 | |
CN113114715B (zh) | 一种基于边缘计算的调度方法及边缘设备集群 | |
CN110290210B (zh) | 接口调用系统中不同接口流量比例自动调配方法及装置 | |
CN110245031B (zh) | 一种ai服务开放中台及方法 | |
CN111600807A (zh) | 一种基于api网关设备的流量控制方法和系统 | |
CN109560976B (zh) | 一种消息延迟的监控方法及装置 | |
CN113067875A (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
US8949824B2 (en) | Systems and methods for installing, managing, and provisioning applications | |
CN108600008B (zh) | 服务器管理方法、服务器管理装置及分布式系统 | |
CN109510730B (zh) | 分布式系统及其监控方法、装置、电子设备及存储介质 | |
CN112416594A (zh) | 一种微服务分配方法、电子设备和计算机存储介质 | |
CN109284275B (zh) | 一种云平台虚拟机文件系统监控方法和装置 | |
CN115776510A (zh) | 心跳包的控制方法和装置、处理器及电子设备 | |
CN110113187B (zh) | 一种配置更新方法、装置、配置服务器及配置系统 | |
CN112559565A (zh) | 一种异常检测方法、系统及装置 | |
CN111555986B (zh) | 一种拥塞控制方法、装置及设备 | |
CN114327867B (zh) | 一种内存资源的处理方法、装置、电子设备及存储介质 | |
CN116489156A (zh) | 流量的分配方法、装置、存储介质以及电子设备 | |
CN114090346A (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 |