CN110750365A - 一种远程过程调用方法、***、终端及存储介质 - Google Patents
一种远程过程调用方法、***、终端及存储介质 Download PDFInfo
- Publication number
- CN110750365A CN110750365A CN201910895561.5A CN201910895561A CN110750365A CN 110750365 A CN110750365 A CN 110750365A CN 201910895561 A CN201910895561 A CN 201910895561A CN 110750365 A CN110750365 A CN 110750365A
- Authority
- CN
- China
- Prior art keywords
- identification information
- rpc request
- rpc
- communication identification
- communication
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 167
- 238000004891 communication Methods 0.000 claims abstract description 165
- 238000012545 processing Methods 0.000 claims abstract description 12
- 230000000903 blocking effect Effects 0.000 claims abstract description 11
- 230000000977 initiatory effect Effects 0.000 claims abstract description 10
- 230000003213 activating effect Effects 0.000 claims abstract description 5
- 230000004913 activation Effects 0.000 claims description 6
- 239000000725 suspension Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000003068 static effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种远程过程调用方法、***、终端及存储介质,分别直接是或基于或配合于用于客户端的远程过程调用方法:发起RPC请求;判定通信介质的类型;在判定通信介质的类型为非阻塞时,生成每个RPC请求的通信标识信息;将生成的通信标识信息存储到预先设定的等待队列;采用不同的线程发送各RPC请求及其对应的通信标识信息至服务端,并挂起各完成RPC请求及通信标识信息发送的线程;在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;判断解析出的通信标识信息是否存储在等待队列中:若是,则激活对应的线程;之后由被激活的线程继续执行相应的处理业务。本发明用于降低对客户端CPU资源的占用,以确保远程过程调用的顺利进行。
Description
技术领域
本发明涉及计算机远程过程调用领域,具体涉及一种远程过程调用方法、***、终端及存储介质。
背景技术
RPC(Remote Procedure Call Protocol),即远程过程调用协议,是一种通过网络从远程计算机程序上请求服务、而不需要了解底层网络技术的协议,其采用客户端/服务端模式。请求服务的一端为客户端,提供服务的一端为服务端。
目前,在采用RPC进行远程过程调用时,客户端先采用发送线程发送RPC请求到服务端,然后采用接收线程或监听线程实时地等待应答信息直至服务端发来应答信息,然后调用执行继续进行。如此,每个RPC请求对应一个实时等待应答的线程。而现有的远程过程调用过程中,往往是采用相应数量的线程并行发送各RPC请求。可见采用接收线程或监听线程实时地等待应答信息直至服务端发来应答信息的方式,相对增加了客户端CPU的负担,这从长远来看,不利于客户端远程过程调用的顺利进行。
为此,本发明提供一种远程过程调用方法、***、终端及存储介质,用于解决上述问题。
发明内容
针对现有技术的上述不足,本发明提供一种远程过程调用方法、***、终端及存储介质,用于降低远程过程调用对客户端CPU资源的占用,以确保远程过程调用的顺利进行。
第一方面,本发明提供一种远程过程调用方法,应用于客户端,该远程过程调用方法包括:
发起相应数量的RPC请求;
判定通信介质的类型;
在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
将生成的通信标识信息均存储到预先设定的等待队列;
采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
判断解析出的通信标识信息是否存储在所述的等待队列中:
若是,则激活对应的线程;
基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
进一步地,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。
第二方面,本发明提供一种远程过程调用***,应用于客户端,该远程过程调用***包括:
RPC请求发起单元,发起相应数量的RPC请求;
通信介质类型判定单元,判定通信介质的类型;
通信标识生成单元,在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
存储单元,将生成的通信标识信息均存储到预先设定的等待队列;
RPC请求发送单元,采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
线程挂起单元,挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
客户端解析单元,在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
判断单元,判断解析出的通信标识信息是否存储在所述的等待队列中;
线程激活单元,在判断解析出的通信标识信息存储在所述的等待队列中时,激活对应的线程;
接收执行单元,基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
进一步地,所述的远程过程调用***还包括:调用错误记录单元,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。
第三方面,本发明提供另一种远程过程调用方法,应用于服务端,该远程过程调用方法与上述各方面所述的远程过程调用方法配合使用,包括:
接收客户端发来的RPC请求及其对应的通信标识信息;
对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
执行目标方法,得到各目标方法各自对应的调用返回信息;
将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
第四方面,本发明提供另一种远程过程调用***,应用于服务端,该远程过程调用***与上述各方面所述的远程过程调用***配合使用,包括:
服务端接收单元,接收客户端发来的RPC请求及其对应的通信标识信息;
服务端解析单元,对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
方法执行单元,执行目标方法,得到各目标方法各自对应的调用返回信息;
调用信息返回单元,将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
第五方面,本发明提供一种终端,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行上述各方面所述的方法。
第六方面,本发明提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于:
(1)本发明提供的远程过程调用方法、***、终端及存储介质,在进行远程过程调用时,生成每个RPC请求各自对应的通信标识信息,并分别将所生成的每个通信标识信息存储到预先设定的等待队列中,且将发送RPC请求及通信标识信息后的线程进行挂起,直至判定接收到的服务端返回的通信标识信息存储在所述的等待队列中后被激活,继而继续对相关的调用返回信息进行后续的处理,可见整个调用过程避免了客户端进程对服务端的应答信息的实时等待,一定程度上降低了远程过程调用对客户端CPU资源的占用,可见减少了客户端CPU的负担,一定程度上有利于客户端的远程过程调用的顺利进行。
(2)在对采用线程实时地等待应答信息进行代码程序开发时,往往会导致程序的复杂化和代码的冗余,而本发明提供的远程过程调用方法、***、终端及存储介质,采用线程的挂起与激活代替对服务端的应答信息的实时等待,避免了程序开发人员对该实时等待部分的相关代码程序的开发,可见本发明还在一定程度上有助于避免开发程序的复杂和代码的冗余。
(3)本发明提供的远程过程调用方法、***、终端及存储介质,预先设定有等待队列,并在远程过程调用中,将每个RPC请求对应的通信标识信息存储在预先设定该等待队列中,在接收到服务端返回的RPC请求结果后,分别验证接收到的服务端返回的各RPC请求结果中的通信标识信息是否存在于所述的等待队列中,且在验证存在于所述的等待队列中后才进行后续的激活处理,可见一定程度上增加了远程过程调用的可靠性与安全性。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的***的示意性结构框图。
图3是本发明另一个实施例的方法的示意性流程图。
图4是本发明另一个实施例的***的示意性结构框图。
图5为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
实施例1:
图1是本发明一个实施例的远程过程调用方法的示意性流程图。本实施例中所述的远程过程调用方法应用于客户端。
如图1所示,该方法100包括:
步骤110,发起相应数量的RPC请求;
步骤120,判定通信介质的类型;
步骤130,在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
步骤140,将生成的通信标识信息均存储到预先设定的等待队列;
步骤150,采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
步骤160,挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
步骤170,在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
步骤180,判断解析出的通信标识信息是否存储在所述的等待队列中:
若是,则激活对应的线程;
步骤190,基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
其中,步骤110中发起的RPC请求,可以是一个,也可以是至少两个。
可选地,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。所述的调用错误信息,包括当前判断未存储在所述的等待队列中的通信标识信息,用于后续进行异常排查。
为了便于对本发明的理解,下面以本发明远程过程调用方法的原理,结合实施例中对服务端的方法进行远程过程调用的过程,对本发明提供的远程过程调用方法做进一步的描述。
具体的,所述远程过程调用方法包括:
步骤s1、发起相应数量的RPC请求。
发起两个RPC请求:RPC请求1和RPC请求2。
步骤s2、判定通信介质的类型。
通信介质可以是现有技术中的任意的网络通信的线路,比如可以是线缆通信线路,也可以是无线传输线路。
通信介质的类型包括非阻塞形式和阻塞形式。
步骤s3、在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息。
在判定通信介质的类型为非阻塞时:生成的RPC请求1对应的通信标识信息记为通信ID1,生成的RPC请求2对应的通信标识信息记为通信ID2。
步骤s4、将生成的通信标识信息均存储到预先设定的等待队列。
记s4中所述的预先设定的等待队列为等待队列M。
通信ID1和通信ID2,均被存储到所述的等待队列M。
步骤s5、采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息。
采用线程1将RPC请求1及通信ID1发送至服务端,采用线程2将RPC请求2及通信ID2发送至服务端。
所述的线程1及所述的线程2,二者可以并行。
步骤s6、挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程。
在线程1将RPC请求1及通信ID1发送至服务端后,将线程1挂起。
在线程2将RPC请求2及通信ID2发送至服务端后,将线程2挂起。
步骤s7、在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息。
客户端接收到服务端返回的RPC请求结果1和RPC请求结果2,经解析,得到RPC请求结果1对应的调用返回信息及通信标识信息为通信ID1和调用返回信息1,并得到RPC请求结果2对应的调用返回信息及通信标识信息为通信ID3和调用返回信息2。
步骤s8、判断解析出的通信标识信息是否存储在所述的等待队列中。
在等待队列M中查找解析出的通信ID1,若在等待队列M中查找到解析出的通信ID1,则执行步骤s9,否则执行步骤s11。
同理,在等待队列M中查找解析出的通信ID3,若在等待队列M中查找到解析出的通信ID3,则执行步骤s9,否则执行步骤s11。
步骤s9、激活对应的线程。
若步骤s8中在等待队列M中查找到解析出的通信ID1,则激活线程1。
若步骤s8中在等待队列M中查找到解析出的通信ID3,则激活通信ID3对应的RPC请求所对应的线程。
假设等待队列M中目前仅存有通信ID1与通信ID2,故步骤s8可在等待队列M中查找到解析出的通信ID1、但查找不到通信ID3,故经该步骤s9,所述的线程1被激活。
步骤s10、基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
采用激活后的线程1,继续处理所解析出的调用返回信息1。
鉴于线程2未被激活,线程2仍处于挂起状态。
步骤s11、记录调用错误信息。
因步骤s8在等待队列M中未查找到通信ID3,故经该步骤s11后,所述的通信ID3被记录下来,用于后续异常查询。
综上可见,本发明提供的远程过程调用方法,在整个远程过程调用过程中避免了现有技术中客户端线程对服务端的应答信息的实时等待,一定程度上降低了远程过程调用对客户端CPU资源的占用,可见减少了客户端CPU的负担,一定程度上有利于客户端的远程过程调用的顺利进行。
另外,本发明采用线程的挂起与激活代替现有技术中对服务端的应答信息的实时等待,避免了程序开发人员开发程序时对该实时等待部分的相关代码程序的开发,可见本发明还在一定程度上有助于避免开发程序的复杂和代码的冗余,较为实用。
另外,本发明提供的远程过程调用方法,预先设定有等待队列,并在远程过程调用中,将每个RPC请求对应的通信标识信息存储在预先设定该等待队列中,并在接收到服务端返回的RPC请求结果后,分别验证接收到的服务端返回的各RPC请求结果中的通信标识信息是否存在于所述的等待队列中,且在验证存在于所述的等待队列中后才进行后续的激活处理,可见本发明还在一定程度上增加了远程过程调用的可靠性与安全性。
实施例2:
图2为本发明所述远程过程调用***的一个实施例。本实施例中的远程过程调用***应用于客户端。
参见图2,该***200包括:
RPC请求发起单元201,发起相应数量的RPC请求;
通信介质类型判定单元202,判定通信介质的类型;
通信标识生成单元203,在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
存储单元204,将生成的通信标识信息均存储到预先设定的等待队列;
RPC请求发送单元205,采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
线程挂起单元206,挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
客户端解析单元207,在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
判断单元208,判断解析出的通信标识信息是否存储在所述的等待队列中;
线程激活单元209,在判断解析出的通信标识信息存储在所述的等待队列中时,激活对应的线程;
接收执行单元210,基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
可选地,该***200还包括:调用错误记录单元211,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。
实施例3:
图3为本发明所述的另一种远程过程调用方法,该远程过程调用方法应用于服务端,与实施例1中所述的方法100配合使用,用于应答客户端的远程过程调用。
参见图3,该方法300包括:
步骤301,接收客户端发来的RPC请求及其对应的通信标识信息;
步骤302,对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
步骤303,执行目标方法,得到各目标方法各自对应的调用返回信息;
步骤304,将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
下面结合本实施例中所述方法300的基本原理,以实施例1中的RPC请求结果1为例,对本实施例所述的方法300进行进一步说明。
该方法300,包括:
步骤301、接收客户端发来的RPC请求及其对应的通信标识信息。
服务端接收到客户端发来的RPC请求1及通信ID1。
步骤302、对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法。
解析RPC请求1,得到RPC请求1中请求调用的目标方法为目标方法1。
步骤303,执行目标方法,得到目标方法各自对应的调用返回信息。
执行目标方法1,得到执行目标方法1得到的调用返回信息1。
步骤304,将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端。
将接收到的RPC请求1所对应的调用返回信息1及对应的通信ID1作为RPC请求结果1,发送给客户端。
实施例4:
图4为本发明提供的另一种远程过程调用***,该***应用于服务端,与实施例2中所述的远程过程调用***配合使用。
如图4示,该***400包括:
服务端接收单元401,接收客户端发来的RPC请求及其对应的通信标识信息;
服务端解析单元402,对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
方法执行单元403,执行目标方法,得到各目标方法各自对应的调用返回信息;
调用信息返回单元404,将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
实施例5:
图5为本发明实施例提供的一种终端500的结构示意图,该终端500可以用于执行本发明实施例1提供的方法100。
其中,该终端装置500可以包括:处理器510、存储器520及通信单元530。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器520可以用于存储处理器510的执行指令,存储器520可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器520中的执行指令由处理器510执行时,使得终端500能够执行上述实施例1中方法100中的部分或全部步骤。
处理器510为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器510可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元530,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
实施例6:
本发明还提供了另一种终端,该终端包括处理器、以及包括用于存储处理器的执行指令的存储器。本实施例中的终端与实施例5中所述的终端500相比,不同之处在于,本实施例中的终端的处理器被配置为执行实施例3中所述的方法300。
实施例7:
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
本说明书中各个实施例之间相同相似的部分互相参见即可。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种远程过程调用方法,其特征在于,应用于客户端,该远程过程调用方法包括:
发起相应数量的RPC请求;
判定通信介质的类型;
在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
将生成的通信标识信息均存储到预先设定的等待队列;
采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
判断解析出的通信标识信息是否存储在所述的等待队列中:
若是,则激活对应的线程;
基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
2.根据权利要求1所述的远程过程调用方法,其特征在于,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。
3.一种远程过程调用***,其特征在于,应用于客户端,该远程过程调用***包括:
RPC请求发起单元,发起相应数量的RPC请求;
通信介质类型判定单元,判定通信介质的类型;
通信标识生成单元,在判定通信介质的类型为非阻塞时,生成每个RPC请求各自对应的通信标识信息;
存储单元,将生成的通信标识信息均存储到预先设定的等待队列;
RPC请求发送单元,采用不同的线程发送各RPC请求至服务端,所述的线程与所述的RPC请求数量相等且一一对应;每个线程在发送RPC请求时,均一并发送其发送的RPC请求所对应的通信标识信息;所述的服务端与所述的客户端通过所述的通信介质通信连接;
线程挂起单元,挂起每个将其对应的RPC请求及通信标识信息发送至服务端的线程;
客户端解析单元,在接收到服务端返回的RPC请求结果后,分别解析出对应的调用返回信息及通信标识信息;其中所述的调用返回信息,是服务端执行相应的目标方法得到的结果;所述的相应的目标方法,是服务端接收到的相应的RPC请求中请求调用的方法;该解析出的对应的通信标识信息,是服务端接收到的所述相应的RPC请求对应的通信标识信息;
判断单元,判断解析出的通信标识信息是否存储在所述的等待队列中;
线程激活单元,在判断解析出的通信标识信息存储在所述的等待队列中时,激活对应的线程;
接收执行单元,基于解析出的调用返回信息,采用被激活的线程继续执行相应的处理业务。
4.根据权利要求3所述的远程过程调用***,其特征在于,该***还包括:调用错误记录单元,在判断解析出的通信标识信息未存储在所述的等待队列中时,记录调用错误信息。
5.一种远程过程调用方法,其特征在于,应用于服务端,该远程过程调用方法与权利要求1或2中所述的远程过程调用方法配合使用,包括:
接收客户端发来的RPC请求及其对应的通信标识信息;
对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
执行目标方法,得到各目标方法各自对应的调用返回信息;
将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
6.一种远程过程调用***,其特征在于,应用于服务端,该远程过程调用***与权利要求3或4中所述的远程过程调用***配合使用,包括:
服务端接收单元,接收客户端发来的RPC请求及其对应的通信标识信息;
服务端解析单元,对接收到的RPC请求进行解析,对应确定出各所述RPC请求中请求调用的目标方法;
方法执行单元,执行目标方法,得到各目标方法各自对应的调用返回信息;
调用信息返回单元,将接收到的RPC请求所对应的调用返回信息及通信标识信息作为RPC请求结果,返回给客户端;每个RPC请求对应一个RPC请求结果。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1或2所述的方法。
8.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求5所述的方法。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1或2所述的方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910895561.5A CN110750365A (zh) | 2019-09-21 | 2019-09-21 | 一种远程过程调用方法、***、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910895561.5A CN110750365A (zh) | 2019-09-21 | 2019-09-21 | 一种远程过程调用方法、***、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110750365A true CN110750365A (zh) | 2020-02-04 |
Family
ID=69276856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910895561.5A Withdrawn CN110750365A (zh) | 2019-09-21 | 2019-09-21 | 一种远程过程调用方法、***、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750365A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187307A (zh) * | 2020-09-29 | 2021-01-05 | 福建北峰通信科技股份有限公司 | 一种基于rpc快速构建分离式对讲终端的方法 |
CN113760465A (zh) * | 2020-11-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种事务执行方法、装置、服务器、设备和存储介质 |
CN114741206A (zh) * | 2022-06-09 | 2022-07-12 | 深圳华锐分布式技术股份有限公司 | 客户端数据回放处理方法、装置、设备及存储介质 |
-
2019
- 2019-09-21 CN CN201910895561.5A patent/CN110750365A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187307A (zh) * | 2020-09-29 | 2021-01-05 | 福建北峰通信科技股份有限公司 | 一种基于rpc快速构建分离式对讲终端的方法 |
CN113760465A (zh) * | 2020-11-16 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种事务执行方法、装置、服务器、设备和存储介质 |
CN114741206A (zh) * | 2022-06-09 | 2022-07-12 | 深圳华锐分布式技术股份有限公司 | 客户端数据回放处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10791200B2 (en) | Method, apparatus and server for providing voice service | |
EP3575975B1 (en) | Method and apparatus for operating smart network interface card | |
CN108681777B (zh) | 一种基于分布式***的机器学习程序运行的方法和装置 | |
CN110750365A (zh) | 一种远程过程调用方法、***、终端及存储介质 | |
CN108011909B (zh) | 通信方法和***、电子设备和计算机集群 | |
CN108228444B (zh) | 一种测试方法和装置 | |
CN111737022A (zh) | 一种基于微服务的接口调用方法、***、设备及介质 | |
CN113938535A (zh) | 基于多协议适配的物联网设备接入方法及装置 | |
CN107645476B (zh) | 请求处理方法和装置 | |
CN112835782A (zh) | 接口的接入测试方法和*** | |
CN113382056A (zh) | 数据上报方法、装置、设备、存储介质及*** | |
CN109818977B (zh) | 一种接入服务器通信优化方法、接入服务器以及通信*** | |
CN107294911B (zh) | 一种数据包监听方法及装置、远程过程调用***、设备 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
CN112491940B (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN113191889A (zh) | 风控配置方法、配置***、电子设备及可读存储介质 | |
US11720089B2 (en) | Decoupled load generation architecture | |
CN107045452B (zh) | 虚拟机调度方法和装置 | |
CN111447273A (zh) | 云处理***及基于云处理***的数据处理方法 | |
CN110245027B (zh) | 一种进程间通信的方法和设备 | |
CN114610446B (zh) | 一种自动注入探针的方法、装置及*** | |
CN108390924A (zh) | 订单执行方法及装置 | |
CN115665265A (zh) | 请求处理方法、装置、设备、存储介质及*** | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN113760703A (zh) | 一种Mock数据的生成方法、装置、设备及存储介质 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200204 |