CN114221995A - 服务调用方法、装置及电子设备 - Google Patents
服务调用方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114221995A CN114221995A CN202111332448.XA CN202111332448A CN114221995A CN 114221995 A CN114221995 A CN 114221995A CN 202111332448 A CN202111332448 A CN 202111332448A CN 114221995 A CN114221995 A CN 114221995A
- Authority
- CN
- China
- Prior art keywords
- service
- protocol
- request
- invocation
- parameter
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000012546 transfer Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 235000014510 cooky Nutrition 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 abstract description 11
- 230000003993 interaction Effects 0.000 abstract description 11
- 230000007246 mechanism Effects 0.000 abstract description 7
- 238000011161 development Methods 0.000 abstract description 5
- 230000008447 perception Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开关于一种服务调用方法、装置及电子设备,通过接收第一系统发送的用于请求调用第二系统中的服务的第一服务调用请求,查询缓存区中存储的历史服务调用请求,响应于历史服务调用请求中不包括第一服务调用请求,根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,其中,第一服务调用请求满足第一服务协议,第二服务调用请求满足第二服务协议,第一服务协议与第二服务协议不同,向第二系统发送第二服务调用请求,实现了两种协议之间的无感知快速转换,提高系统级之间交互的开发效率,同时利用缓存机制,进一步提高系统间协议转化的效率。
Description
技术领域
本公开涉及大数据资源调度技术领域,尤其涉及服务调用方法、装置及电子设备。
背景技术
随着互联网技术的快速发展,在数据规模越来越庞大、程序响应速度要求越来越来高的条件下,微服务分布式架构应运而生,服务以模块化分别部署在不同的计算平台,通过通信协议来进行通信。RPC(Remote Procedure Call,远程过程调用)协议由于其轻量、高效的特点在系统内各服务间应用广泛。系统与系统之间的通信一般需要通过互联网,往往会采用规范性、兼容性和安全性都较好的HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议。
在万物互联的时代,不仅系统内需要通信,系统之间也往往需要进行交互,这样就会频繁使用两种不同的通信协议,在两种协议之间转换,增加工作量的同时还提高了系统维护的难度。因此,系统、服务之间协议不一致不兼容,是亟待解决的问题。
发明内容
本公开提供一种服务调用方法、装置及电子设备,以至少解决相关技术中系统、服务之间协议不一致的兼容问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种服务调用方法,包括:
接收第一系统发送的第一服务调用请求,其中,所述第一服务调用请求用于请求调用第二系统中的服务;
查询缓存区中存储的历史服务调用请求;
响应于所述历史服务调用请求中不包括所述第一服务调用请求,根据所述第一服务调用请求中的第一服务调用参数,生成第二服务调用请求;
其中,所述第一服务调用请求满足第一服务协议,所述第二服务调用请求满足第二服务协议,所述第一服务协议与所述第二服务协议不同;
响应于所述历史服务调用请求中包括所述第一服务调用请求,获取所述缓存区存储的所述第一服务调用请求对应的第二服务调用请求;
向所述第二系统发送所述第二服务调用请求。
可选地,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
可选地,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,包括:将所述第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入所述第二服务调用请求的消息头;将所述第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入所述第二服务调用请求的消息体;根据配置文件,将配置的验证信息写入所述第二服务调用请求的消息头中的本地存储cookie字段。
可选地,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
可选地,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,包括:解析所述第一服务调用请求,以得到所述第一服务调用参数;将所述第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
根据本公开实施例的第二方面,提供一种服务调用装置,包括:
接收单元,用于接收第一系统发送的第一服务调用请求,其中,所述第一服务调用请求用于请求调用第二系统中的服务;
查询单元,用于查询缓存区中存储的历史服务调用请求;
处理单元,用于响应于所述历史服务调用请求中不包括所述第一服务调用请求,根据所述第一服务调用请求中的第一服务调用参数,生成第二服务调用请求;
其中,所述第一服务调用请求满足第一服务协议,所述第二服务调用请求满足第二服务协议,所述第一服务协议与所述第二服务协议不同;
获取单元,用于响应于所述历史服务调用请求中包括所述第一服务调用请求,获取所述缓存区存储的所述第一服务调用请求对应的第二服务调用请求;
发送单元,用于向所述第二系统发送所述第二服务调用请求。
可选地,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
可选地,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述处理单元具体用于:将所述第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入所述第二服务调用请求的消息头;将所述第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入所述第二服务调用请求的消息体;根据配置文件,将配置的验证信息写入所述第二服务调用请求的消息头中的本地存储cookie字段。
可选地,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
可选地,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述处理单元具体用于:解析所述第一服务调用请求,以得到所述第一服务调用参数;将所述第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的服务调用方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面所述的服务调用方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序被处理器执行时实现第一方面所述的服务调用方法。
本公开的实施例提供的技术方案至少带来以下有益效果:通过接收第一系统发送的第一服务调用请求,其中,第一服务调用请求用于请求调用第二系统中的服务,查询缓存区中存储的历史服务调用请求,响应于历史服务调用请求中不包括第一服务调用请求,根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,其中,第一服务调用请求满足第一服务协议,第二服务调用请求满足第二服务协议,第一服务协议与第二服务协议不同,响应于历史服务调用请求中包括第一服务调用请求,获取缓存区存储的第一服务调用请求对应的第二服务调用请求,向第二系统发送第二服务调用请求,实现了两种协议之间的无感知快速转换,在系统级交互进行服务调用的过程中,无需关注系统间交互所需要的协议不一致的兼容问题,提高系统级之间交互的开发效率,同时利用缓存机制,无需重复转化相同的服务调用请求,进一步提高系统间协议转化的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据第一实施例示出的一种服务调用方法的流程图;
图2是根据第二实施例示出的一种服务调用方法的流程图;
图3是根据第三实施例示出的一种服务调用方法的流程图;
图4是本公开一示例性实施例示出的一种系统整体架构框图;
图5是本公开一示例性实施例示出的一种服务调用装置框图;
图6是本公开一示例性实施例示出的一种用于服务调用的电子设备600的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据第一实施例示出的一种服务调用方法的流程图,如图1所示,该方法包括以下步骤。
步骤S101,接收第一系统发送的第一服务调用请求,其中,第一服务调用请求用于请求调用第二系统中的服务。
在一些实施方式中,第一系统为客户端系统,第二系统为服务端系统。
其中,客户端系统发送的第一服务调用请求,是用于请求调用服务端系统中的服务。
可选地,客户端系统和服务端系统均为采用微服务分布式架构的系统,系统内有至少一个服务。
步骤S102,查询缓存区中存储的历史服务调用请求。
其中,缓存区是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。
历史服务调用请求是指,在本次接收到第一服务调用请求之前接收到的服务调用请求。
可以理解的是,在本次接收到第一服务调用请求之前,将接收到的服务调用请求存储至缓存区。
可选地,将首次接收到的服务调用请求存储至缓存区。
也就是,若在缓存区中未查询到与该第一服务调用请求一致的历史服务调用请求,则将该第一服务调用请求存储至缓存区。
步骤S103,响应于历史服务调用请求中不包括该第一服务调用请求,根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求。
需要说明的是,其中,第一服务调用请求满足第一服务协议,第二服务调用请求满足第二服务协议,第一服务协议与第二服务协议不同。
作为一种可能的实现方式,第一服务协议是远程过程调用RPC协议,第二服务协议是超文本传输协议HTTP协议。
也就是,根据满足RPC协议的第一服务调用请求中的第一服务调用参数,生成满足HTTP协议的第二服务调用请求。
可选地,第一服务调用参数包括:第二系统的IP地址、第二系统服务应用端口、第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号和入参中的至少一种。
进一步地,第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
作为另一种可能的实现方式,第一服务协议是超文本传输协议HTTP协议,第二服务协议是远程过程调用RPC协议。
也就是,根据满足HTTP协议的第一服务调用请求中的第一服务调用参数,生成满足RPC协议的第二服务调用请求。
可选地,第一服务调用参数包括:第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号和入参中的至少一种。
进一步地,第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
可以理解的是,第一服务协议和第二服务协议还可以是其他应用于服务调用的不同的协议,可以根据不同的协议规则,对应设置不同的第一服务调用请求和第二服务调用请求的格式,以及设置不同的根据第一服务请求中的第一服务调用参数生成第二服务调用请求的规则。
在一些实施方式中,将该第一服务调用请求和该第二服务调用请求存储至缓存区中。
可选地,该第二服务调用请求与该对应的第一服务调用请求相关联。
这样,响应于再次接收到该第一服务调用请求,可以在缓存区查询到历史服务调用请求中包括该第一服务调用请求,从而直接获取缓存区存储的该第一服务调用请求对应的第二服务调用请求。
步骤S104,响应于历史服务调用请求中包括该第一服务调用请求,获取缓存区存储的该第一服务调用请求对应的第二服务调用请求。
在一些实施例中,缓存区还存储该第一服务调用请求对应的第二服务调用请求,二者相关联。
响应于在历史服务调用请求中查询到该第一服务调用请求,直接获取缓存区存储的该第一服务调用请求关联对应的第二服务调用请求。
可选地,该关联关系可以通过第一服务调用请求和对应的第二服务调用请求中的目标参数一致来指示,也可以通过其他指示信息指示二者的关联关系。
步骤S105,向第二系统发送第二服务调用请求。
其中,第二服务调用请求也用于请求调用第二系统的中的服务。
作为一种可能的实施方式,第二服务调用请求满足HTTP协议。
作为另一种可能的实施方式,第二服务调用请求满足RPC协议。
在本申请实施例中,可选地,利用Java语言实现本申请实施例,服务调用参数通过接口的形式获取,统一协议接口,开放接口兼容其他协议分布式框架。
本申请实施例提供的方法,通过接收第一系统发送的第一服务调用请求,其中,第一服务调用请求用于请求调用第二系统中的服务,查询缓存区中存储的历史服务调用请求,响应于历史服务调用请求中不包括第一服务调用请求,根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,其中,第一服务调用请求满足第一服务协议,第二服务调用请求满足第二服务协议,第一服务协议与第二服务协议不同,响应于历史服务调用请求中包括第一服务调用请求,获取缓存区存储的第一服务调用请求对应的第二服务调用请求,向第二系统发送第二服务调用请求,实现了两种协议之间的无感知快速转换,在系统级交互进行服务调用的过程中,无需关注系统间交互所需要的协议不一致的兼容问题,提高系统级之间交互的开发效率,同时利用缓存机制,无需重复转化相同的服务调用请求,进一步提高系统间协议转化的效率。
图2是根据第二实施例示出的一种服务调用方法的流程图,如图2所示,该方法包括以下步骤。
步骤S201,接收第一系统发送的第一服务调用请求。
其中,第一服务调用请求满足RPC协议,用于请求调用第二系统中的服务。
可选地,第一系统为客户端系统,第二系统为服务端系统。客户端系统想要调用服务端的系统中的服务,客户端系统发送第一服务调用请求,该第一服务调用请求满足RPC协议,用于请求调用服务端系统中的服务。
步骤S202,将第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入第二服务调用请求的消息头。
其中,第一服务调用参数是从第一服务调用请求中得到的。
第一服务调用参数可以包括:第二系统的IP地址、第二系统服务应用端口、第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号和入参。
其中,第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法这三个参数为必填参数,也就是第一服务调用参数至少包括上述三个参数。
第二服务调用请求满足HTTP协议,也就是第二服务调用请求为满足HTTP协议的协议报文,用于调用第二系统中的服务。
在接收到第一系统发送的第一服务调用请求后,获取第一服务调用请求中的第一服务调用参数,将其中的第二系统的IP地址和第二系统服务应用端口两个参数,写入第二服务调用请求的消息头。
可以理解的是,若第一服务调用请求中不存在第二系统服务应用端口的参数,则将第二系统的IP地址写入第二服务调用请求的消息头。
可选地,该满足HTTP协议的第二服务调用请求的发送方法为post。
步骤S203,将第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入第二服务调用请求的消息体。
在接收到第一系统发送的第一服务调用请求后,获取第一服务调用请求中的第一服务调用参数,将其中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参,写入第二服务调用请求的消息体。
可以理解的是,第一服务调用请求中第二系统服务接口组名、第二系统服务接口版本号或者入参是可以不存在的。
步骤S204,根据配置文件,将配置的验证信息写入第二服务调用请求的消息头中的本地存储cookie字段。
可选地,验证信息包括签名、权限信息和身份标识中的至少一种。
可以理解的是,验证信息用于使第二系统通过该验证信息,确认该服务调用请求的发送端,也就是第一系统的身份以及合法性等。
步骤S205,向第二系统发送第二服务调用请求。
其中,第二服务调用请求满足HTTP协议。
步骤S206,将第二服务调用请求存储至缓存区。
其中,缓存区是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。
也就是,在第一次完成第一服务调用请求到第二服务调用请求的转化之后,将转化后的结果存储至缓存区。
步骤S207,响应于再次接收第一服务调用请求,获取缓存区存储的第二服务调用请求。
在第一次请求结束之后的请求,也就是再次接收到第一服务调用请求时,在缓存区可以查询到历史服务调用请求中包括该第一服务调用请求,则首先获取缓存区存储的转化后的结果,也就是存储的第二服务调用请求。
步骤S208,向第二系统发送存储的第二服务调用请求。
在获取到缓存区存储的第二服务调用请求后,向第二系统发送该存储的第二服务调用请求。利用缓存机制,加快了生成第二服务调用请求的速度。
本申请实施例提供的方法,通过接收第一系统发送的第一服务调用请求,将第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入第二服务调用请求的消息头,将第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入第二服务调用请求的消息体,根据配置文件,将配置的验证信息写入第二服务调用请求的消息头中的本地存储cookie字段,向第二系统发送第二服务调用请求,将第二服务调用请求存储至缓存区,响应于再次接收第一服务调用请求,获取缓存区存储的第二服务调用请求,向第二系统发送存储的第二服务调用请求,实现了RPC协议到HTTP协议的无感知快速转换,在系统级交互进行服务调用的过程中,无需关注系统间交互所需要的协议不一致的兼容问题,提高系统级之间交互的开发效率,同时利用缓存机制,无需重复转化相同的服务调用请求,进一步提高系统间协议转化的效率。
图3是根据第三实施例示出的一种服务调用方法的流程图,如图3所示,该方法包括以下步骤。
步骤S301,接收第一系统发送的第一服务调用请求。
其中,第一服务调用请求满足HTTP协议,用于请求调用第二系统中的服务。
可选地,第一系统为客户端系统,第二系统为服务端系统。客户端系统想要调用服务端的系统中的服务,客户端系统发送第一服务调用请求,该第一服务调用请求满足HTTP协议,用于请求调用服务端系统中的服务。
步骤S302,解析第一服务调用请求,以得到第一服务调用参数。
解析第一服务调用请求,得到第一服务调用参数。第一服务调用请求满足HTTP协议,因此第一服务调用请求为满足HTTP协议的协议报文,解析该协议报文,可以得到第一服务调用参数。
可选地,第一服务调用参数包括:第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号和入参中的至少一种。
进一步地,第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。因为若想调用到第二系统中的服务,至少应该存在这两个参数。
步骤S303,将第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
其中,第二服务调用请求满足RPC协议。第二服务中的泛化接口参数为泛化RPC接口参数。
可选地,泛化接口参数包括:第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号、第二系统服务接口方法入参类型和第二系统服务接口方法入参参数值。
将第一服务调用参数,作为第二服务调用请求中的泛化接口参数,其中,第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号,直接一一对应地作为泛化接口参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号。将第一服务调用参数中的入参这个参数的类型和参数值,分别作为泛化接口参数中的第二系统服务接口方法入参类型和第二系统服务接口方法入参参数值。
步骤S304,向第二系统发送第二服务调用请求。
其中,第二服务调用请求满足RPC协议。
可以理解的是,第二系统收到第二服务调用请求后,利用第二服务调用请求中的RPC泛化接口参数,调用系统中的对应的服务。
步骤S305,将第二服务调用请求存储至缓存区。
其中,缓存区是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。
也就是,在第一次完成第一服务调用请求到第二服务调用请求的转化之后,将转化后的结果存储至缓存区。
步骤S306,响应于再次接收第一服务调用请求,获取缓存区存储的第二服务调用请求。
在第一次请求结束之后的请求,也就是再次接收到第一服务调用请求时,在缓存区可以查询到历史服务调用请求中包括该第一服务调用请求,首先获取缓存区存储的转化后的结果,也就是存储的第二服务调用请求。
步骤S307,向第二系统发送该存储的第二服务调用请求。
在获取到缓存区存储的第二服务调用请求后,向第二系统发送该存储的第二服务调用请求。利用缓存机制,加快了生成第二服务调用请求的速度。
本申请实施例提供的方法,通过接收第一系统发送的第一服务调用请求,解析第一服务调用请求,以得到第一服务调用参数,将第一服务调用参数,作为第二服务调用请求中的泛化接口参数,向第二系统发送第二服务调用请求,将第二服务调用请求存储至缓存区,响应于再次接收第一服务调用请求,获取缓存区存储的第二服务调用请求,向第二系统发送存储的第二服务调用请求,实现了HTTP协议到RPC协议的无感知快速转换,在系统级交互进行服务调用的过程中,无需关注系统间交互所需要的协议不一致的兼容问题,提高系统级之间交互的开发效率,同时利用缓存机制,无需重复转化相同的服务调用请求,进一步提高系统间协议转化的效率。
为了更好的理解本申请上述实施例所述的服务调用方法,对本申请上述实施例所适用的整体架构进行说明。请参照图4,图4是根据一示例性实施例示出的一种系统整体架构框图。
如图4所示,第一系统401和第二系统402均为微服务分布式架构的系统。第一系统401中包括服务a1、a2、a3、a4和a5,第二系统402中包括服务b1、b2、b3、b4和b5。第一系统401和第二系统402之间通过互联网进行数据传输和通信。
如前所述,在微服务分布式架构中,系统内通信一般采用RPC协议,系统间通信一般采用HTTP协议。
当第一系统401想要请求调用第二系统402中的服务时,第一系统401会发送一个第一服务调用请求411,该第一服务调用请求411满足RPC协议,但其无法在互联网中进行传输,也就无法通过该协议直接调用第二系统402中的服务,因此,可以通过本申请第二实施例所述的方法,生成满足HTTP协议的第二服务调用请求412,发送给第二系统402。如前所述,系统内通信一般采用RPC协议,第二系统402也无法直接通过满足HTTP协议的第二服务调用请求412调用系统内的服务,因此,可以通过本申请第三实施例所述的方法,生成满足RPC协议的第三服务调用请求,发送给第二系统402,以调用系统中的服务。
图5是根据一示例性实施例示出的一种服务调用装置框图。参照图5,该装置包括接收单元510,查询单元520,处理单元530,获取单元540和发送单元550。
其中,接收单元510,用于接收第一系统发送的第一服务调用请求,其中,所述第一服务调用请求用于请求调用第二系统中的服务;
查询单元520,用于查询缓存区中存储的历史服务调用请求;
处理单元530,用于响应于所述历史服务调用请求中不包括所述第一服务调用请求,根据所述第一服务调用请求中的第一服务调用参数,生成第二服务调用请求;
其中,所述第一服务调用请求满足第一服务协议,所述第二服务调用请求满足第二服务协议,所述第一服务协议与所述第二服务协议不同;
获取单元540,用于响应于所述历史服务调用请求中包括所述第一服务调用请求,获取所述缓存区存储的所述第一服务调用请求对应的第二服务调用请求;
发送单元550,用于向所述第二系统发送所述第二服务调用请求。
作为一种可能的实施方式,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
作为一种可能的实施方式,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述处理单元520具体用于:
将所述第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入所述第二服务调用请求的消息头;
将所述第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入所述第二服务调用请求的消息体;
根据配置文件,将配置的验证信息写入所述第二服务调用请求的消息头中的本地存储cookie字段。
作为一种可能的实施方式,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
作为一种可能的实施方式,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述处理单元520具体用于:
解析所述第一服务调用请求,以得到所述第一服务调用参数;
将所述第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于服务调用的电子设备600的框图。如图6所示,上述电子设备600,还可以包括:
存储器610及处理器620,连接不同组件(包括存储器610和处理器620)的总线630,存储器610存储有计算机程序,当处理器620执行所述程序时实现本公开实施例所述的服务调用方法。
总线630表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备600典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备600访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器610还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)640和/或高速缓存存储器650。服务器600可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统660可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线630相连。存储器610可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块670的程序/实用工具680,可以存储在例如存储器610中,这样的程序模块670包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块670通常执行本公开所描述的实施例中的功能和/或方法。
电子设备600也可以与一个或多个外部设备690(例如键盘、指向设备、显示器691等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口692进行。并且,电子设备600还可以通过网络适配器693与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器693通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器620通过运行存储在存储器610中的程序,从而执行各种功能应用以及数据处理。
需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本公开实施例的服务调用方法的解释说明,此处不再赘述。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述任一实施例提出的方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一实施例提出的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (13)
1.一种服务调用方法,其特征在于,包括:
接收第一系统发送的第一服务调用请求,其中,所述第一服务调用请求用于请求调用第二系统中的服务;
查询缓存区中存储的历史服务调用请求;响应于所述历史服务调用请求中不包括所述第一服务调用请求,根据所述第一服务调用请求中的第一服务调用参数,生成第二服务调用请求;
其中,所述第一服务调用请求满足第一服务协议,所述第二服务调用请求满足第二服务协议,所述第一服务协议与所述第二服务协议不同;
响应于所述历史服务调用请求中包括所述第一服务调用请求,获取所述缓存区存储的所述第一服务调用请求对应的第二服务调用请求;
向所述第二系统发送所述第二服务调用请求。
2.根据权利要求1所述的服务调用方法,其特征在于,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
3.根据权利要求2所述的服务调用方法,其特征在于,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,包括:
将所述第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入所述第二服务调用请求的消息头;
将所述第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入所述第二服务调用请求的消息体;
根据配置文件,将配置的验证信息写入所述第二服务调用请求的消息头中的本地存储cookie字段。
4.根据权利要求1所述的服务调用方法,其特征在于,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
5.根据权利要求4所述的服务调用方法,其特征在于,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述根据第一服务调用请求中的第一服务调用参数,生成第二服务调用请求,包括:
解析所述第一服务调用请求,以得到所述第一服务调用参数;
将所述第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
6.一种服务调用装置,其特征在于,包括:
接收单元,用于接收第一系统发送的第一服务调用请求,其中,所述第一服务调用请求用于请求调用第二系统中的服务;
查询单元,用于查询缓存区中存储的历史服务调用请求;
处理单元,用于响应于所述历史服务调用请求中不包括所述第一服务调用请求,根据所述第一服务调用请求中的第一服务调用参数,生成第二服务调用请求;
其中,所述第一服务调用请求满足第一服务协议,所述第二服务调用请求满足第二服务协议,所述第一服务协议与所述第二服务协议不同;
获取单元,用于响应于所述历史服务调用请求中包括所述第一服务调用请求,获取所述缓存区存储的所述第一服务调用请求对应的第二服务调用请求;
发送单元,用于向所述第二系统发送所述第二服务调用请求。
7.根据权利要求6所述的服务调用装置,其特征在于,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述第一服务调用参数至少包括:第二系统的IP地址、第二系统服务接口名称和第二系统服务接口方法。
8.根据权利要求7所述的服务调用装置,其特征在于,在所述第一服务协议是远程过程调用协议RPC,所述第二服务协议是超文本传输协议HTTP的情况下,所述处理单元具体用于:
将所述第一服务调用参数中的第二系统的IP地址和第二系统服务应用端口,写入所述第二服务调用请求的消息头;
将所述第一服务调用参数中的第二系统服务接口名称、第二系统服务接口方法、第二系统服务接口组名、第二系统服务接口版本号以及入参中的至少一个参数,写入所述第二服务调用请求的消息体;
根据配置文件,将配置的验证信息写入所述第二服务调用请求的消息头中的本地存储cookie字段。
9.根据权利要求8所述的服务调用装置,其特征在于,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述第一服务调用参数至少包括:第二系统服务接口名称和第二系统服务接口方法。
10.根据权利要求9所述的服务调用装置,其特征在于,在所述第一服务协议是超文本传输协议HTTP,所述第二服务协议是远程过程调用协议RPC的情况下,所述处理单元具体用于:
解析所述第一服务调用请求,以得到所述第一服务调用参数;
将所述第一服务调用参数,作为第二服务调用请求中的泛化接口参数。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的服务调用方法。
12.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至5中任一项所述的服务调用方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述的服务调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111332448.XA CN114221995B (zh) | 2021-11-11 | 2021-11-11 | 服务调用方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111332448.XA CN114221995B (zh) | 2021-11-11 | 2021-11-11 | 服务调用方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114221995A true CN114221995A (zh) | 2022-03-22 |
CN114221995B CN114221995B (zh) | 2024-04-09 |
Family
ID=80696903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111332448.XA Active CN114221995B (zh) | 2021-11-11 | 2021-11-11 | 服务调用方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114221995B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726923A (zh) * | 2022-05-07 | 2022-07-08 | 中国工商银行股份有限公司 | 服务调用方法及相关装置 |
CN114979295A (zh) * | 2022-05-19 | 2022-08-30 | 京东城市(北京)数字科技有限公司 | 一种网关管理的方法和装置 |
CN115174649A (zh) * | 2022-06-20 | 2022-10-11 | 浪潮卓数大数据产业发展有限公司 | 一种跨机房rpc调用方法、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181576A1 (en) * | 2003-03-12 | 2004-09-16 | Microsoft Corporation | Protocol-independent client-side caching system and method |
US20070174420A1 (en) * | 2006-01-24 | 2007-07-26 | International Business Machines Corporation | Caching of web service requests |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
CN108011927A (zh) * | 2017-11-08 | 2018-05-08 | 东软集团股份有限公司 | 请求数据的方法、装置以及存储介质和电子设备 |
WO2019100819A1 (zh) * | 2017-11-24 | 2019-05-31 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN111049854A (zh) * | 2019-12-25 | 2020-04-21 | 微民保险代理有限公司 | 一种服务请求的传输方法和装置 |
CN112231727A (zh) * | 2020-10-19 | 2021-01-15 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备、服务器及存储介质 |
CN112653656A (zh) * | 2019-10-12 | 2021-04-13 | 华为技术有限公司 | 一种基于应用层协议的数据通信方法及其装置 |
-
2021
- 2021-11-11 CN CN202111332448.XA patent/CN114221995B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181576A1 (en) * | 2003-03-12 | 2004-09-16 | Microsoft Corporation | Protocol-independent client-side caching system and method |
US20070174420A1 (en) * | 2006-01-24 | 2007-07-26 | International Business Machines Corporation | Caching of web service requests |
CN102262560A (zh) * | 2010-05-27 | 2011-11-30 | 阿里巴巴集团控股有限公司 | 一种远程服务的调用方法、装置及系统 |
CN108011927A (zh) * | 2017-11-08 | 2018-05-08 | 东软集团股份有限公司 | 请求数据的方法、装置以及存储介质和电子设备 |
WO2019100819A1 (zh) * | 2017-11-24 | 2019-05-31 | 中兴通讯股份有限公司 | 一种实现远程过程调用的方法及装置 |
CN112653656A (zh) * | 2019-10-12 | 2021-04-13 | 华为技术有限公司 | 一种基于应用层协议的数据通信方法及其装置 |
CN111049854A (zh) * | 2019-12-25 | 2020-04-21 | 微民保险代理有限公司 | 一种服务请求的传输方法和装置 |
CN112231727A (zh) * | 2020-10-19 | 2021-01-15 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置、电子设备、服务器及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726923A (zh) * | 2022-05-07 | 2022-07-08 | 中国工商银行股份有限公司 | 服务调用方法及相关装置 |
CN114979295A (zh) * | 2022-05-19 | 2022-08-30 | 京东城市(北京)数字科技有限公司 | 一种网关管理的方法和装置 |
CN114979295B (zh) * | 2022-05-19 | 2024-05-17 | 京东城市(北京)数字科技有限公司 | 一种网关管理的方法和装置 |
CN115174649A (zh) * | 2022-06-20 | 2022-10-11 | 浪潮卓数大数据产业发展有限公司 | 一种跨机房rpc调用方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114221995B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114221995B (zh) | 服务调用方法、装置及电子设备 | |
US6775700B2 (en) | System and method for common information model object manager proxy interface and management | |
US8327381B2 (en) | Referencing message elements in an application message in a messaging environment | |
KR101159364B1 (ko) | 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑 | |
US20070124344A1 (en) | Method, apparatus and program storage device for providing web services-based data replication for Heterogeneous storage systems | |
KR102407334B1 (ko) | 게이트웨이 장치 및 그 동작 방법 | |
US20080215706A1 (en) | Mobile exchange infrastructure | |
EP2011029B1 (en) | Managing network response buffering behavior | |
US9537940B2 (en) | Exchange of information between processing servers | |
CN112688915A (zh) | 跨协议通信方法、装置及服务器 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
US7925788B2 (en) | Systems and methods for universal protocol for case management systems | |
CN114416169A (zh) | 基于微前端的数据处理方法、介质、装置和计算设备 | |
CN112417016B (zh) | 一种数据交换方法、系统、设备及存储介质 | |
CN107395663B (zh) | 数据获取方法及装置 | |
CN113760562A (zh) | 链路追踪方法、装置、系统、服务器和存储介质 | |
CN115460265A (zh) | 接口调用方法、装置、设备及介质 | |
CN113992641A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN116016473A (zh) | 实例信息获取方法和系统 | |
CN113987035A (zh) | 区块链的外部数据访问方法、装置、系统、设备和介质 | |
CN113741912A (zh) | 模型管理系统、方法、装置及设备 | |
CN111552907A (zh) | 消息处理方法、装置、设备和存储介质 | |
KR102181608B1 (ko) | 연합 인증 장치 및 그것의 연합 인증 방법 | |
CN113572809B (zh) | 单请求源多目标源数据通讯方法、计算机设备及存储介质 | |
CN111131369A (zh) | App使用情况的传输方法、装置、电子设备及存储介质 |
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 |