CN111897663A - 接口调用方法、装置、计算机设备和存储介质 - Google Patents
接口调用方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111897663A CN111897663A CN202010753354.9A CN202010753354A CN111897663A CN 111897663 A CN111897663 A CN 111897663A CN 202010753354 A CN202010753354 A CN 202010753354A CN 111897663 A CN111897663 A CN 111897663A
- Authority
- CN
- China
- Prior art keywords
- interface
- target
- processing terminal
- request
- provider
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及接口调用技术领域,根据接口调用请求中的功能类型确定消息队列库中的目标处理端,通过目标处理端将接口调用请求发送至目标接口提供方中处理,可以实现更加便捷地调用接口,提高了接口调用效率。尤其涉及一种接口调用方法、装置、设备和存储介质,该接口调用方法包括:获取接口请求方发送的接口调用请求,接口调用请求包括功能类型;根据接口调用请求对应的功能类型,确定接口调用请求在消息队列库中的目标处理端;通过目标处理端将接口调用请求发送至目标接口提供方,以及通过目标处理端接收目标接口提供方根据接口调用请求生成的应答消息,并将应答消息发送至接口请求方。
Description
技术领域
本申请涉及接口调用技术领域,尤其涉及一种接口调用方法、装置、设备及计算机可读存储介质。
背景技术
在上层应用需要调用底层来实现功能或服务的过程中,如果上层应用采用的编程语言与底层采用的编程语言不同,上层应用需要通过接口与底层通信。
现有技术一般是采用JNI(Java Native Interface,Java本地接口)技术实现上层应用与底层之间的接口通信。但JNI技术存在一些缺陷:JNI技术只能对接一个底层而且只能调用本地接口,无法调用不同机器中的接口,不具备通用性。此外,第三方的底层不符合JNI规则,无法直接使用,需要再次封装后使用,降低了接口调用的效率。
因此上层应用与底层之间需要一种更加便捷的接口调用方法,以提高接口调用效率。
发明内容
本申请提供一种接口调用方法、装置、计算机设备及存储介质,根据接口调用请求中的功能类型确定消息队列库中的目标处理端,通过目标处理端将接口调用请求发送至目标接口提供方中处理,可以实现更加便捷地调用接口,提高了接口调用效率。
第一方面,本申请提供了一种接口调用方法,包括:
获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型;
根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端;
通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
第二方面,本申请还提供了一种接口调用装置,包括:
请求接收模块,用于获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型;
处理端确定模块,用于根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端;
请求发送模块,用于通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的接口调用方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的接口调用方法。
本申请公开了一种接口调用方法、装置、计算机设备和存储介质,通过获取接口请求方发送的接口调用请求,可以得到接口调用请求中的功能类型;通过根据接口调用请求对应的功能类型,确定接口调用请求在消息队列库中的目标处理端,实现将不同功能类型的接口调用请求分配给对应的处理端进行转发,通用性更强;通过目标处理端将接口调用请求发送至目标接口提供方,以及通过目标处理端接收目标接口提供方根据接口调用请求生成的应答消息,并将应答消息发送至接口请求方,实现将接口调用请求发送至不同的接口提供方中处理,可以更加便捷地调用接口,提高了接口调用效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种接口调用方法的示意性流程图;
图2是本申请的实施例提供的接口调用过程的示意性框图;
图3是本申请的实施例提供的消息队列库的结构示意图;
图4是本申请的实施例提供的将处理端与识别码进行关联的示意性流程图;
图5是本申请实施例提供的一种对处理端进行标注功能标识的示意性框图;
图6是本申请实施例提供的另一种对处理端进行标注功能标识的示意性框图;
图7是本申请实施例提供的一种将接口调用请求分发至处理端的示意性框图;
图8是本申请实施例提供的另一种将接口调用请求分发至处理端的示意性框图;
图9是本申请实施例提供的一种将接口调用请求发送至目标接口提供方的示意性框图;
图10是本申请实施例提供的另一种将接口调用请求发送至目标接口提供方的示意性框图;
图11是本申请实施例提供的一种接收目标接口提供方返回应答消息的示意性框图;
图12为本申请实施例提供的一种接口调用装置的示意性框图;
图13为本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种接口调用方法、装置、计算机设备和存储介质。其中,该接口调用方法可以应用于服务器或终端的消息队列库中,实现根据接口调用请求中的功能类型确定消息队列库中的目标处理端,通过目标处理端将接口调用请求发送至目标接口提供方中处理,可以实现更加便捷地调用接口,提高了接口调用效率。
其中,服务器可以为独立的服务器,也可以为服务器集群。终端可以是智能手机、平板电脑、笔记本电脑和台式电脑等电子设备。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图1所示,接口调用方法包括步骤S10至步骤S30。
S10、获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型。
需要说明的是,在本申请实施例中,接口请求方可以是服务器或终端中的上层应用,接口提供方可以是服务器或终端中的底层。其中,上层应用与底层可以部署在同一台服务器或终端中,也可以部署在多台服务器或终端中,甚至可以选择进行集群式、负载均衡式、主备冗余式等各种形式的部署方式。
示例性的,上层应用可以采用Java编程语言开发,也可以采用其它编程语言开发;例如,Bsaic、Pascal、ASP、PHP以及SQL等编程语言。底层可以采用C或C++编程语言开发,也可以是其它编程语言。
在本申请实施例中,当上层应用与底层采用的编程语言不同时,可以通过消息队列库实现上层应用与底层之间的接口调用。
请参阅图2,图2是接口调用过程的示意图。在本申请实施例中,通过消息队列库接收接口请求方发送的接口调用请求,消息队列库将接口调用请求转发至接口提供方中处理;然后消息队列库接收接口提供方返回的应答消息,并将应答消息发送至接口请求方,实现一次完整的接口调用。
需要说明的是,消息队列库ZeroMQ(简称ZMQ)是一个基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。
示例性的,如图3所示,消息队列库包括路由端(Router)和多个处理端(Dealer);其中,处理端每次处理一个接口调用请求。
具体地,路由端用于接收接口请求方发送的接口调用请求,并将接口调用请求分发至处理端;处理端将接口调用请求发送至接口调用方中处理,并接收接口调用方返回的应答消息,将应答消息转发给路由端,由路由端将应答消息发送至接口请求方。
示例性的,接口调用请求包括功能类型。其中,功能类型是指接口请求方需要从接口提供方调用的服务。
示例性的,接口调用请求除了包括功能类型,还可以包括调用数据内容和接口请求方的序列号。其中,接口提供方可以对调用数据内容进行处理并返回应答消息。
在一些实施例中,接口调用请求可以通过接口协议定义和生成接口调用请求。示例性的,接口调用请求的格式可以是json数据格式。例如,接口调用请求的内容如下:
{"requestId":"xxxx","cmd":3003,"data":"data"}。其中,字段requestId标识了接口请求方的序列号,字段cmd标识了功能类型,data为调用数据内容。
示例性的,接口协议可以包括但不限于超文本传输协议、网络控制协议、互联网协议以及用户数据协议等等。
通过消息队列库,可以将同一服务器或终端中的接口请求方对应的接口调用请求发送至同一服务器或终端中的接口提供方,还可以发送至不同服务器或终端中的接口提供方,通用性更强;且应答消息可以被接口请求方使用,无需再次封装后使用,接口调用更加便捷。
S20、根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端。
需要说明的是,消息队列库中存在多个处理端。其中,不同的处理端用于转发不同的功能类型的接口调用请求。同时,也存在多个处理端可以转发同一功能类型的接口调用请求,因此需要确定接口调用请求在消息队列库中的目标处理端。
在一些实施例中,如图4所示,图4是将处理端与识别码进行关联的示意性流程图。具体地,在步骤S20中根据接口调用请求对应的功能类型,确定接口调用请求在消息队列库中的目标处理端之前,还可以包括步骤S201至步骤S203。
步骤S201、获取接口提供方对应的功能类型以及识别码。
需要说明的是,接口提供方可以有多个,不同的接口提供方提供不同的功能。
示例性的,接口提供方a提供的功能为功能类型A,接口提供方b提供的功能为功能类型B,接口提供方c提供的功能为功能类型C。其中,不同的接口提供方对应的识别码不同。例如,接口提供方a对应的识别码为UUID1001,接口提供方b对应的识别码为UUID1002,接口提供方c对应的识别码为UUID1003。
步骤S202、根据所述接口提供方对应的功能类型,对所述消息队列库中的各处理端标注功能标识,得到携带功能标识的处理端,其中,对至少一个处理端标注相同的功能标识。
具体地,在获取接口提供方对应的功能类型以及识别码之后,可以根据接口提供方对应的功能类型,对消息队列库中的各处理端标注功能标识。
其中,功能标识可以包括A、B以及C等标识。
示例性的,对消息队列库中的各处理端进行标注功能标识,得到携带功能标识的处理端。例如,根据接口提供方a对应的功能类型A对其中一个处理端进行标注A,得到处理端A;根据接口提供方b对应的功能类型B对另一个处理端进行标注B,得到处理端B。根据接口提供方c对应的功能类型C对另一个处理端进行标注C,得到处理端C。示例性的,如图5所示,图5是本申请实施例提供的一种对处理端进行标注功能标识的示意性框图。
示例性的,还可以对至少一个处理端标注相同的功能标识。例如,根据接口提供方a对应的功能类型A对其中两个处理端进行标注A,得到处理端A1和处理端A2;根据接口提供方b对应的功能类型B对另外三个处理端进行标注B,得到处理端B1、处理端B2和处理端B3。根据接口提供方c对应的功能类型C对另一个处理端进行标注C,得到处理端C。示例性的,如图6所示,图6是本申请实施例提供的另一种对处理端进行标注功能标识的示意性框图。
步骤S203、将所述携带功能标识的处理端与所述接口提供方的识别码进行关联,其中,接口提供方的识别码与至少一个处理端对应的功能标识关联。
示例性的,将处理端A与接口提供方a的识别码UUID1001进行关联,将处理端B与接口提供方b的识别码UUID1002进行关联。
例如,处理端与识别码的关联关系,如表1所示。
表1为处理端与识别码的关联表
| 功能 | 处理端 | 识别码 |
| 功能类型A | 处理端A | UUID1001 |
| 功能类型B | 处理端B | UUID1002 |
| 功能类型C | 处理端C | UUID1003 |
示例性的,若同一功能类型对应有多个携带功能标识的处理端,则将多个携带功能标识的处理端与接口提供方的识别码进行关联。例如,将处理端A1和处理端A2分别与接口提供方a的识别码UUID1001进行关联;将处理端B1、处理端B2和处理端B3分别与接口提供方b的识别码UUID1002进行关联。
例如,处理端与识别码的关联关系,如表2所示。
表2为处理端与识别码的关联表
需要强调的是,为进一步保证上述处理端与接口提供方的识别码之间的关联关系的私密和安全性,上述处理端与接口提供方的识别码之间的关联关系还可以存储于一区块链的节点中。
通过获取接口提供方对应的功能类型以及识别码,可以根据接口提供方的功能类型对处理端标注功能标识,实现不同的接口提供方都有对应的处理端对接;后续可以将不同功能类型对应的接口调用请求通过不同的处理端发送至接口提供方中,实现高并发地处理接口调用请求,提高了接口调用效率。
在一些实施例中,根据接口调用请求对应的功能类型,确定接口调用请求在消息队列库中的目标处理端,可以包括:获取消息队列库中的携带功能标识的处理端;基于携带功能标识的处理端与功能类型之间预设的对应关系,根据所述接口调用请求对应的功能类型确定所述接口调用请求对应的目标处理端。
示例性的,获取消息队列库中的携带功能标识的处理端。例如,携带功能标识的处理端可以包括但不限于处理端A、处理端B以及处理端C等等。
示例性的,携带功能标识的处理端还可以包括但不限于处理端A1、处理端A2、处理端B1、处理端B2、处理端B3以及处理端C等等。
具体地,可以预先将携带功能标识的处理端与接口提供方对应的功能类型进行关联,如上述实施例中的表1或表2所示。
通过根据携带功能标识的处理端与功能类型之间预设的对应关系,可以快速且便捷地根据接口调用请求对应的功能类型确定接口调用请求对应的目标处理端,进而提高了接口调用效率。
在一些实施例中,基于携带功能标识的处理端与功能类型之间预设的对应关系,根据接口调用请求对应的功能类型确定接口调用请求对应的目标处理端,可以包括:确定与接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端对应的个数;若携带功能标识的处理端为一个,则将携带功能标识的处理端作为接口调用请求对应的目标处理端;若携带功能标识的处理端为多个,则基于预设的负载均衡策略确定接口调用请求对应的目标处理端。
具体地,确定与接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端对应的个数。
示例性的,若接口调用请求对应的功能类型为功能类型A,则可以确定与功能类型A存在对应关系的携带功能标识的处理端包括一个,例如处理端A;或者可以确定与功能类型A存在对应关系的携带功能标识的处理端包括2个,例如,处理端A1和处理端A2。
示例性的,若接口调用请求对应的功能类型为功能类型B,则可以确定与功能类型B存在对应关系的携带功能标识的处理端包括一个,例如处理端B;或者可以确定与功能类型B存在对应关系的携带功能标识的处理端包括3个,例如,处理端B1、处理端B2和处理端B3。
在一些实施方式中,若确定与接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端为一个,则将该携带功能标识的处理端作为接口调用请求对应的目标处理端。例如,若确定的携带功能标识的处理端为处理端A,则将处理端A作为接口调用请求对应的目标处理端。
在另一些实施方式中,若确定与接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端有多个,则基于预设的负载均衡策略确定接口调用请求对应的目标处理端。例如,若确定的携带功能标识的处理端包括处理端B1、处理端B2和处理端B3,则根据负载均衡策略确定处理端B1、处理端B2和处理端B3之间的其中一个作为接口调用请求对应的目标处理端。
示例性的,负载均衡策略可以包括但不限于排队、轮询、比率、优先权、最少连接数、最快响应时间以及哈希算法等等。
在本申请实施例中,可以采用排队的策略确定接口调用请求对应的目标处理端。示例性的,可以对处理端进行编号;当路由端接收到接口调用请求时,将编号为1的处理端作为接口调用请求对应的目标处理端;当路由端接收到下一接口调用请求时,将编号为2的处理端处理作为接口调用请求对应的目标处理端。
示例性的,当接口调用请求对应的功能类型为功能类型A,且与功能类型A存在对应关系的携带功能标识的处理端包括处理端A1和处理端A2,则可以对处理端A1和处理端A2进行编号1和2,将编号1的处理端A1作为接口调用请求对应的目标处理端。当下一个接口调用请求对应的功能类型也为功能类型A时,将编号2的处理端A2作为下一个接口调用请求对应的目标处理端。
若下一个接口调用请求对应的功能类型为功能类型B,且确定与功能类型B存在对应关系的携带功能标识的处理端包括处理端B1、处理端B2和处理端B3,则可以对处理端B1、处理端B2和处理端B3进行编号1-3;将编号1的处理端B1作为下一个接口调用请求对应的目标处理端。
具体地,在确定接口调用请求在消息队列库中的目标处理端之后,由路由端将接口调用请求分发至目标处理端中。
示例性的,若确定的目标处理端为处理端A,则路由端将接口调用请求分发至处理端A处理,如图7所示,图7是本申请实施例提供的一种将接口调用请求分发至处理端的示意性框图。
示例性的,若确定的目标处理端为处理端B2,则路由端将接口调用请求分发至处理端B2处理,如图8所示,图8是本申请实施例提供的另一种将接口调用请求分发至处理端的示意性框图。
当携带功能标识的处理端有多个时,通过预设的负载均衡策略确定接口调用请求对应的目标处理端,可以有效地提高了消息队列库的性能。
S30、通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
需要说明的是,在本申请实施例中,目标处理端在接收到路由端分发的接口调用请求之后,由目标处理端将接口调用请求发送至目标接口提供方中处理。
在一些实施例中,通过目标处理端将接口调用请求发送至目标接口提供方之前,还可以包括:基于携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,根据目标处理端对应的功能标识确定目标接口提供方。
具体地,可以从区块链节点中获取携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,可参见上述实施例中的表1或表2。
示例性的,若接口调用请求对应的是目标处理端A1,则可以根据功能标识A1与识别码UUID1001之间的对应关系,确定目标接口提供方为接口提供方a。因此,目标处理端A1将接口调用请求发送至目标接口提供方a中。如图9所示,图9是本申请实施例提供的一种将接口调用请求发送至目标接口提供方的示意性框图。
示例性的,若接口调用请求对应的是目标处理端B2,则可以根据功能标识B2与识别码UUID1002之间的对应关系,确定目标接口提供方为接口提供方b。因此,目标处理端B2将接口调用请求发送至目标接口提供方b中。如图10所示,图10是本申请实施例提供的另一种将接口调用请求发送至目标接口提供方的示意性框图。
通过基于携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,根据目标处理端对应的功能标识确定目标接口提供方,可以将接口调用请求发送至能够处理该接口调用请求的目标接口提供方中进行处理,可以充分利用目标接口提供方的高效能和高效率的特性,进而提高了接口调用效率。
请参阅图11,图11是本申请实施例提供的一种接收目标接口提供方返回应答消息的示意性框图。具体地,若通过目标处理端A1将接口调用请求发送至目标接口提供方a,则可以通过目标处理端A1接收目标接口提供方a返回的应答消息。目标处理端A1将应答消息传递给路由端,由路由端将应答消息将应答消息发送给接口请求方。
在一些实施例中,通过目标处理端接收目标接口提供方根据接口调用请求生成的应答消息,并将应答消息发送至接口请求方,可以包括:通过目标处理端接收目标接口提供方对调用数据内容进行处理并生成的应答消息,其中,应答消息包括接口请求方的序列号;根据应答消息中的接口请求方的序列号,通过路由端将应答消息发送至接口请求方。
具体地,由于接口调用请求中包括调用数据内容和接口请求方的序列号,因此目标接口提供方在接收到接口调用请求之后,可以对接口调用请求中进行处理并生成应答消息。同时,在生成应答消息时,将接口请求方的序列号添加至应答消息中。从而,路由端可以根据应答消息中的接口请求方的序列号,将应答消息发送至接口请求方。
示例性的,目标接口提供方生成的应答消息的格式可以是json数据格式。应答消息的内容如下:{"requestId":"xxxx","errorcode":"0","errormsg":"Tradesuccessed","result":"xxxx"};其中,字段requestId标识了接口请求方的序列号,字段errorcode标识了处理的错误码,字段errormsg标识了错误类型,字段result标识了处理结果。
在一些实施例中,通过目标处理端将接口调用请求发送至目标接口提供方之后,还可以包括:若在预设的时间阈值内未接收到目标接口提供方生成的应答消息,则生成调用异常通知,并将调用异常通知发送至接口请求方。
示例性的,预设的时间阈值可以根据目标接口提供方处理历史的接口调用请求是平均时间或最大时间进行设定。例如,若目标接口提供方处理历史的接口调用请求是平均时间为T,则可以将预设的时间阈值设为2T或3T等等;预设的时间阈值可以根据实际情况设定,具体数值在此不作限定。
具体地,若在预设的时间阈值内未接收到目标接口提供方生成的应答消息,则生成调用异常通知,通过路由端将调用异常通知发送至接口请求方,以使接口请求方重新发送接口调用请求或者进行其它指令动作。
在另一些实施例中,通过目标处理端将接口调用请求发送至目标接口提供方之后,还可以包括:若在预设的时间阈值内未接收到目标接口提供方生成的应答消息,则重新通过目标处理端将接口调用请求发送至目标接口提供方。
示例性的,当在预设的时间阈值内未接收到目标接口提供方生成的应答消息时,目标处理端可以重新将接口调用请求发送至目标接口提供方,以使目标接口提供方对接口调用请求进行处理并返回生成的应答消息。
上述实施例提供的接口调用方法,通过消息队列库,可以将同一服务器或终端中的接口请求方对应的接口调用请求发送至同一服务器或终端中的接口提供方,还可以发送至不同服务器或终端中的接口提供方,通用性更强,且应答消息可以被接口请求方使用,无需再次封装后使用,接口调用更加便捷;通过获取接口提供方对应的功能类型以及识别码,可以根据接口提供方的功能类型对处理端标注功能标识,实现不同的接口提供方都有对应的处理端对接;后续可以将不同功能类型对应的接口调用请求通过不同的处理端发送至接口提供方中,实现高并发地处理接口调用请求,提高了接口调用效率;通过根据携带功能标识的处理端与功能类型之间预设的对应关系,可以快速且便捷地根据接口调用请求对应的功能类型确定接口调用请求对应的目标处理端;当携带功能标识的处理端有多个时,通过预设的负载均衡策略确定接口调用请求对应的目标处理端,可以有效地提高了消息队列库的性能;通过基于携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,根据目标处理端对应的功能标识确定目标接口提供方,可以将接口调用请求发送至能够处理该接口调用请求的目标接口提供方中进行处理,可以充分利用目标接口提供方的高效能和高效率的特性,进而提高了接口调用效率。
请参阅图12,图12是本申请的实施例还提供一种接口调用装置100的示意性框图,该接口调用装置用于执行前述的接口调用方法。其中,该接口调用装置可以配置于服务器或终端中。
如图12所示,该接口调用装置100,包括:请求接收模块101、处理端确定模块102和请求发送模块103。
请求接收模块101,用于获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型。
处理端确定模块102,用于根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端。
请求发送模块103,用于通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图13所示的计算机设备上运行。
请参阅图13,图13是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器或终端。
请参阅图13,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种接口调用方法。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型;根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端;通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
在一个实施例中,所述处理器在实现根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端之前,还用于实现:
获取接口提供方对应的功能类型以及识别码;根据所述接口提供方对应的功能类型,对所述消息队列库中的各处理端标注功能标识,得到携带功能标识的处理端,其中,对至少一个处理端标注相同的功能标识;将所述携带功能标识的处理端与所述接口提供方的识别码进行关联,其中,所述接口提供方的识别码与至少一个所述处理端对应的功能标识关联。
在一个实施例中,所述处理器在实现根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端时,用于实现:
获取所述消息队列库中的携带功能标识的处理端;基于携带功能标识的处理端与功能类型之间预设的对应关系,根据所述接口调用请求对应的功能类型确定所述接口调用请求对应的目标处理端。
在一个实施例中,所述处理器在实现基于携带功能标识的处理端与功能类型之间预设的对应关系,根据所述接口调用请求对应的功能类型确定所述接口调用请求对应的目标处理端时,用于实现:
确定与所述接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端对应的个数;若所述携带功能标识的处理端为一个,则将所述携带功能标识的处理端作为所述接口调用请求对应的目标处理端;若所述携带功能标识的处理端为多个,则基于预设的负载均衡策略确定所述接口调用请求对应的目标处理端。
在一个实施例中,所述处理器在实现通过所述目标处理端将所述接口调用请求发送至目标接口提供方之前,还用于实现:
基于携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,根据所述目标处理端对应的功能标识确定目标接口提供方。
在一个实施例中,所述消息队列库还包括路由端;所述处理器在实现获取接口请求方发送的接口调用请求,用于实现:
通过所述路由端获取接口请求方发送的接口调用请求。
在一个实施例中,所述接口调用请求还包括调用数据内容和所述接口请求方的序列号;所述处理器在实现通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方时,用于实现:
通过所述目标处理端接收所述目标接口提供方对所述调用数据内容进行处理并生成的应答消息,其中,所述应答消息包括接口请求方的序列号;根据所述应答消息中的接口请求方的序列号,通过所述路由端将所述应答消息发送至所述接口请求方。
在一个实施例中,所述处理器在实现通过所述目标处理端将所述接口调用请求发送至目标接口提供方之后,还用于实现:
若在预设的时间阈值内未接收到所述目标接口提供方生成的应答消息,则生成调用异常通知,并将所述调用异常通知发送至所述接口请求方;或若在预设的时间阈值内未接收到所述目标接口提供方生成的应答消息,则重新通过所述目标处理端将所述接口调用请求发送至目标接口提供方。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项接口调用方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字卡(Secure Digital Card,SD Card),闪存卡(Flash Card)等。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种接口调用方法,应用于消息队列库中,其特征在于,包括:
获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型;
根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端;
通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
2.根据权利要求1所述的接口调用方法,其特征在于,所述根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端之前,还包括:
获取接口提供方对应的功能类型以及识别码;
根据所述接口提供方对应的功能类型,对所述消息队列库中的各处理端标注功能标识,得到携带功能标识的处理端,其中,对至少一个处理端标注相同的功能标识;
将所述携带功能标识的处理端与所述接口提供方的识别码进行关联,其中,所述接口提供方的识别码与至少一个所述处理端对应的功能标识关联。
3.根据权利要求2所述的接口调用方法,其特征在于,所述根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端,包括:
获取所述消息队列库中的携带功能标识的处理端;
基于携带功能标识的处理端与功能类型之间预设的对应关系,根据所述接口调用请求对应的功能类型确定所述接口调用请求对应的目标处理端。
4.根据权利要求3所述的接口调用方法,其特征在于,所述基于携带功能标识的处理端与功能类型之间预设的对应关系,根据所述接口调用请求对应的功能类型确定所述接口调用请求对应的目标处理端,包括:
确定与所述接口调用请求对应的功能类型存在对应关系的携带功能标识的处理端对应的个数;
若所述携带功能标识的处理端为一个,则将所述携带功能标识的处理端作为所述接口调用请求对应的目标处理端;
若所述携带功能标识的处理端为多个,则基于预设的负载均衡策略确定所述接口调用请求对应的目标处理端。
5.根据权利要求2所述的接口调用方法,其特征在于,所述通过所述目标处理端将所述接口调用请求发送至目标接口提供方之前,还包括:
基于携带功能标识的处理端与接口提供方的识别码之间预设的对应关系,根据所述目标处理端对应的功能标识确定目标接口提供方。
6.根据权利要求1所述的接口调用方法,其特征在于,所述消息队列库还包括路由端,所述接口调用请求还包括调用数据内容和所述接口请求方的序列号;所述获取接口请求方发送的接口调用请求,包括:
通过所述路由端获取接口请求方发送的接口调用请求;
所述通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方,包括:
通过所述目标处理端接收所述目标接口提供方对所述调用数据内容进行处理并生成的应答消息,其中,所述应答消息包括接口请求方的序列号;
根据所述应答消息中的接口请求方的序列号,通过所述路由端将所述应答消息发送至所述接口请求方。
7.根据权利要求1-6任一项所述的接口调用方法,其特征在于,所述通过所述目标处理端将所述接口调用请求发送至目标接口提供方之后,还包括:
若在预设的时间阈值内未接收到所述目标接口提供方生成的应答消息,则生成调用异常通知,并将所述调用异常通知发送至所述接口请求方;或
若在预设的时间阈值内未接收到所述目标接口提供方生成的应答消息,则重新通过所述目标处理端将所述接口调用请求发送至目标接口提供方。
8.一种接口调用装置,其特征在于,包括:
请求接收模块,用于获取接口请求方发送的接口调用请求,其中,所述接口调用请求包括功能类型;
处理端确定模块,用于根据所述接口调用请求对应的功能类型,确定所述接口调用请求在所述消息队列库中的目标处理端;
请求发送模块,用于通过所述目标处理端将所述接口调用请求发送至目标接口提供方,以及通过所述目标处理端接收所述目标接口提供方根据所述接口调用请求生成的应答消息,并将所述应答消息发送至所述接口请求方。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7任一项所述的接口调用方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一所述的接口调用方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010753354.9A CN111897663A (zh) | 2020-07-30 | 2020-07-30 | 接口调用方法、装置、计算机设备和存储介质 |
| PCT/CN2020/121080 WO2021114857A1 (zh) | 2020-07-30 | 2020-10-15 | 接口调用方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010753354.9A CN111897663A (zh) | 2020-07-30 | 2020-07-30 | 接口调用方法、装置、计算机设备和存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111897663A true CN111897663A (zh) | 2020-11-06 |
Family
ID=73182705
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010753354.9A Pending CN111897663A (zh) | 2020-07-30 | 2020-07-30 | 接口调用方法、装置、计算机设备和存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111897663A (zh) |
| WO (1) | WO2021114857A1 (zh) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112799864A (zh) * | 2021-01-25 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 一种接口调用时序检测方法、装置、电子设备及存储介质 |
| CN113282395A (zh) * | 2021-06-09 | 2021-08-20 | 中国农业银行股份有限公司 | 基于Redis的作业请求调度方法、装置、设备及介质 |
| CN113395358A (zh) * | 2021-08-16 | 2021-09-14 | 贝壳找房(北京)科技有限公司 | 网络请求的执行方法与执行系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106487637A (zh) * | 2015-08-25 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种应用消息的处理系统、方法及应用设备 |
| CN108696578A (zh) * | 2018-04-26 | 2018-10-23 | 昆明理工大学 | 基于ZeroMQ的多机分布式计算的通信框架设计方法 |
| CN111064588A (zh) * | 2018-10-16 | 2020-04-24 | 上海欣诺通信技术股份有限公司 | 消息处理方法、系统、设备及存储介质 |
| CN111382737A (zh) * | 2018-12-29 | 2020-07-07 | 深圳光启空间技术有限公司 | 多路负载均衡异步目标检测方法、存储介质及处理器 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111314459B (zh) * | 2020-02-13 | 2022-06-03 | 北京奇艺世纪科技有限公司 | 一种业务请求方法、装置、电子设备及存储介质 |
-
2020
- 2020-07-30 CN CN202010753354.9A patent/CN111897663A/zh active Pending
- 2020-10-15 WO PCT/CN2020/121080 patent/WO2021114857A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106487637A (zh) * | 2015-08-25 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 一种应用消息的处理系统、方法及应用设备 |
| CN108696578A (zh) * | 2018-04-26 | 2018-10-23 | 昆明理工大学 | 基于ZeroMQ的多机分布式计算的通信框架设计方法 |
| CN111064588A (zh) * | 2018-10-16 | 2020-04-24 | 上海欣诺通信技术股份有限公司 | 消息处理方法、系统、设备及存储介质 |
| CN111382737A (zh) * | 2018-12-29 | 2020-07-07 | 深圳光启空间技术有限公司 | 多路负载均衡异步目标检测方法、存储介质及处理器 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112799864A (zh) * | 2021-01-25 | 2021-05-14 | 百果园技术(新加坡)有限公司 | 一种接口调用时序检测方法、装置、电子设备及存储介质 |
| CN113282395A (zh) * | 2021-06-09 | 2021-08-20 | 中国农业银行股份有限公司 | 基于Redis的作业请求调度方法、装置、设备及介质 |
| CN113395358A (zh) * | 2021-08-16 | 2021-09-14 | 贝壳找房(北京)科技有限公司 | 网络请求的执行方法与执行系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2021114857A1 (zh) | 2021-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108170740B (zh) | 数据迁移方法、系统和计算机可读存储介质 | |
| CN111897663A (zh) | 接口调用方法、装置、计算机设备和存储介质 | |
| CN107798108A (zh) | 一种异步任务查询方法及设备 | |
| TW202027456A (zh) | 聯盟鏈的可信度驗證方法、系統、裝置及設備 | |
| WO2021082073A1 (zh) | 存储分区动态选择方法、系统、计算机设备及存储介质 | |
| CN111756736A (zh) | 一种异构区块链间的跨链方法、系统及电子设备和存储介质 | |
| CN112035144B (zh) | 区块链系统的升级方法、装置、计算机设备及存储介质 | |
| CN112527669B (zh) | 本地服务的自测方法及系统 | |
| US12430186B2 (en) | Hardware accelerator service aggregation | |
| US20150371327A1 (en) | System for dynamically selecting a communications fabric | |
| CN114598750A (zh) | 一种数据请求处理方法、装置及存储介质 | |
| CN117076409A (zh) | 文件共享方法、装置、系统、电子设备及存储介质 | |
| CN116132385A (zh) | 数据转发方法、装置、计算机设备及存储介质 | |
| CN114217845B (zh) | 应用的配置方法、装置、设备及存储介质 | |
| CN113300895A (zh) | 一种线索处理方法、系统及计算设备 | |
| CN114201241B (zh) | 业务处理方法、装置、设备、存储介质及程序 | |
| CN111240867B (zh) | 一种信息通讯系统及方法 | |
| CN112861004B (zh) | 一种富媒体的确定方法及装置 | |
| CN116527440A (zh) | 数据传输方法、设备及存储介质 | |
| CN115023931B (zh) | 用于服务api发布的方法和网络实体 | |
| US11163537B1 (en) | Tiered application pattern | |
| CN114356532A (zh) | 任务处理方法、装置、服务器及计算机可读存储介质 | |
| JP5381242B2 (ja) | マルチプロセッサシステム及び制御プログラム | |
| CN113419810A (zh) | 数据交互方法、装置、电子设备及计算机存储介质 | |
| WO2022133827A1 (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 |