远程过程调用协议的处理方法和装置
技术领域
本发明涉及进程处理领域,具体而言,涉及一种远程过程调用协议的处理方法和装置。
背景技术
相关技术中,远程过程调用RPC是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务,使用RPC的程序不需要了解支持通信的网络协议的情况,就可以进行相互的通信,这样可以快速在客户端之间建立连接,客户端可以根据预先建立的通信连接协议进行通讯,并且客户端可以和服务器之间通过上述的程序建立通信,发出请求的可以是客户端的程序,提供服务的是服务器的程序。但是客户端在与服务器进行通讯的过程中,进程单一,发送消息时,需要一条一条的发送,这样会导致在发送多个消息时,由于进程单一导致发送时间长、发送效率低。
针对上述的相关技术中由于进程单一,导致在使用远程过程调用RPC时发送时间长、发送效率低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种远程过程调用协议的处理方法和装置,以至少解决相关技术中由于进程单一,导致在使用远程过程调用RPC时发送时间长、发送效率低的技术问题。
根据本发明实施例的一个方面,提供了一种远程过程调用协议的处理方法,包括:远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,所述服务器的RPC服务进程有多个,每个服务进程之间对所述多个调用消息进行同步;所述RPC客户机接收到所述服务器的多个服务进程对所述多个调用信息对应的答复信息;所述RPC客户机根据所述多个调用信息对应的答复信息进行处理。
进一步地,在所述RPC客户机发送所述多个调用消息到所述服务器之后,所述方法还包括:所述服务器将所述多个调用消息分配到所述多个服务进程中;所述服务器获取所述多个服务进程返回的答复信息;所述服务器将所述答复信息发送给所述RPC客户机。
进一步地,所述服务器将所述多个调用消息分配到所述多个服务进程中包括:对于所述多个调用消息中每个调用消息,执行如下操作:确定所述调用消息中每个调用消息的优先级等级;根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程;将所述调用消息分配到与其相匹配的服务进程。
进一步地,根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程之后,在将所述调用消息分配到与其相匹配服务进程之前,所述方法还包括:获取与所述调用消息相匹配的服务进程的CPU使用率;判断与所述调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;若与所述调用消息相匹配的服务进程的CPU使用率未超过所述预设使用率,将所述调用消息分配到与其相匹配的服务进程;若与所述调用消息相匹配的服务进程的CPU使用率超过所述预设使用率,重新根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程。
根据本发明实施例的另一方面,还提供了一种远程过程调用协议的处理装置,包括:发送单元,用于远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,所述服务器的RPC服务进程有多个,每个服务进程之间对所述多个调用消息进行同步;接收单元,用于所述RPC客户机接收到所述服务器的多个服务进程对所述多个调用信息对应的答复信息;处理单元,用于所述RPC客户机根据所述多个调用信息对应的答复信息进行处理。
进一步地,所述装置还包括:分配单元,用于在所述RPC客户机发送所述多个调用消息到所述服务器之后,所述服务器将所述多个调用消息分配到所述多个服务进程中;第一获取单元,用于所述服务器获取所述多个服务进程返回的答复信息;发送模块,用于所述服务器将所述答复信息发送给所述RPC客户机。
进一步地,所述分配单元包括:第一确定模块,用于对于所述多个调用消息中每个调用消息,确定所述调用消息中每个调用消息的优先级等级;第二确定模块,用于根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程;第一分配模块,用于将所述调用消息分配到与其相匹配的服务进程。
进一步地,所述装置还包括:第二获取单元,用于根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程之后,在将所述调用消息分配到与其相匹配服务进程之前,获取与所述调用消息相匹配的服务进程的CPU使用率;判断单元,用于判断与所述调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;第二分配模块,用于若与所述调用消息相匹配的服务进程的CPU使用率未超过所述预设使用率,将所述调用消息分配到与其相匹配的服务进程;第三确定模块,用于若与所述调用消息相匹配的服务进程的CPU使用率超过所述预设使用率,重新根据所述调用消息的优先级等级确定与所述调用消息相匹配的服务进程。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述实施方式中任意一项所述的远程过程调用协议的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行上述实施方式中任意一项所述的远程过程调用协议的处理方法。
在本发明实施例中,可以利用远程过程调用协议RPC客户机发送多个调用消息到服务器中,并通过RPC的客户机来接收多个服务进程对多个调用信息对应的答复信息,然后处理该答复信息。在本发明实施例中,RPC客户机和服务器之间传送信息时,可以采用多个进程同步调用消息,然后RPC客户机可以对每个进程对应的调用消息的答复信息进行处理,通过多进程来传输、调用消息可以减少单进程传输所浪费的时间,并对各个进程的调用消息进行处理,提高RPC客户机服务的效率。进而解决相关技术中由于进程单一,导致在使用远程过程调用RPC时发送时间长、发送效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种远程过程调用协议的处理方法的流程图;
图2是根据本发明实施例的一种远程过程调用协议的处理装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面对本发明实施例中涉及的部分术语或名词做出如下解释:
RPC,Remote Procedure Call Protocol,远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
TCP,Transmission Control Protocol,传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证传送到接收端实体的包的按序接收,然后接收端实体对已成功收到的包发回一个相应的确认,如果发送端实体在合理的往返时延内未收到确认,那么对应的数据包就被假设为已丢失将会进行重传。TCP用一个校验和函数来检验数据是否发生错误;在发送和接收时都要计算校验和。
UDP,User Datagram Protocol,用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。其主要作用是将网络数据流量压缩成数据报的形式,一个典型的数据包就是一个二进制数据的传输单位,每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
根据本发明实施例,提供了一种远程过程调用协议的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种远程过程调用协议的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,服务器的RPC服务进程有多个,每个服务进程之间对多个调用消息进行同步;
步骤S104,RPC客户机接收到服务器的多个服务进程对多个调用信息对应的答复信息;
步骤S106,RPC客户机根据多个调用信息对应的答复信息进行处理。
通过上述实施方式,可以利用远程过程调用协议RPC客户机发送多个调用消息到服务器中,并通过RPC的客户机来接收多个服务进程对多个调用信息对应的答复信息,然后处理该答复信息。在本发明实施例中,RPC客户机和服务器之间传送信息时,可以采用多个进程同步调用消息,然后RPC客户机可以对每个进程对应的调用消息的答复信息进行处理,通过多进程来传输、调用消息可以减少单进程传输所浪费的时间,并对各个进程的调用消息进行处理,提高RPC客户机服务的效率。进而解决相关技术中由于进程单一,导致在使用远程过程调用RPC时发送时间长、发送效率低的技术问题。
可选的,上述的RPC是远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC可以使得开发包括网络分布式多程序在内的应用程序更加容易。另外,本申请中的RPC可以采用客户机/服务器模式,请求程序可以是客户机,而服务器提供程序。客户机可以调用多个进程同步发送有进程参数的调用信息到服务器中,在接收到服务器返回的答复信息后,处理该答复信息。
另一种可选的实施方式,本申请中的客户机可以在使用多个进程同步发送调用消息时,通过多个进程对应的标识信息分别传输对应的调用消息。其中,每个进程的标识信息可以包括进程编号、进程的颜色标识等,其中,进程编号可以是预先给多个进程编号,例如,进程001、进程002、进程003以及进程004。通过该进程标识信息,客户机可以准确的调用对应的进程,从而根据不同的进程分别发送对应的调用信息,以及通过多个进程接收对应的答复信息。
可选的,在客户机发送调用信息时,可以选择不同的传输参数来调用对应的进程,该传输参数可以对应传输协议(例如,TCP协议或UDP协议),通过每个不同进程对应的传输参数发送对应的调用信息。该传输参数可以包括:传输速度、每次传输的文件大小等。
另外,在RPC客户机发送多个调用消息到服务器之后,该方法还包括:服务器将多个调用消息分配到多个服务进程中;服务器获取多个服务进程返回的答复信息;服务器将答复信息发送给RPC客户机。
通过上述实施方式,可以是RPC的服务器所执行的操作,在客户机通过多个进程发送对应的调用信息后,服务器可以接收该调用信息,并将多个调用消息分配到多个服务进程中。本申请中服务器也可以调用多个服务进程,每个服务进程可以与客户机的发送进程对应。在服务器获取多个服务进程返回的答复信息,然后将该答复信息发送给RPC客户机中。
其中,上述的多个服务进程可以对应于多个调用消息,根据每个调用信息确定答复信息,并将该答复信息传输至服务器中。
可选的,服务器将多个调用消息分配到多个服务进程中包括:对于多个调用消息中每个调用消息,执行如下操作:确定调用消息中每个调用消息的优先级等级;根据调用消息的优先级等级确定与调用消息相匹配的服务进程;将调用消息分配到与其相匹配的服务进程。
通过上述实施方式,可以根据调用消息的优先级来确定相匹配的服务进程,由于每个服务进程在答复该调用消息时的参数不同,因此对于优先级高的调用消息可以更快的答复。其中,服务进程的参数可以包括:答复速度、答复大小等。根据调用消息的优先级等级可以确定与调用消息相匹配的服务进程,并将调用消息分配到与其向匹配的服务进程中,最后可以将不同服务进程的答复消息返回至服务器中。
另一种可选的实施方式,根据调用消息的优先级等级确定与调用消息相匹配的服务进程之后,在将调用消息分配到与其相匹配服务进程之前,该方法还包括:获取与调用消息相匹配的服务进程的CPU使用率;判断与调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;若与调用消息相匹配的服务进程的CPU使用率未超过预设使用率,将调用消息分配到与其相匹配的服务进程;若与调用消息相匹配的服务进程的CPU使用率超过预设使用率,重新根据调用消息的优先级等级确定与调用消息相匹配的服务进程。
可选的,上述的CPU使用率可以是服务进程每次可以处理的调用消息能力,一个服务进程可以处理的调用消息的能力可以是预先确定的,在超出该能力后,若再次增加处理的调用消息的个数,会降低服务进程的处理速度,进而降低服务进程的处理效率。本申请中的CPU使用率是判断服务进程的处理能力的一个标准,在与调用消息相匹配的服务进程的CPU使用率未超过预设使用率,将调用消息分配到与其相匹配的服务进程中,而在调用消息相匹配的服务进程的CPU使用率超过预设使用率,重新根据调用消息的优先级等级确定与调用消息相匹配的服务进程。
其中,上述的预设使用率可以是用户对每个服务进程预先设置的,例如,服务进程A的CPU预设使用率为70%,服务进程B的CPU预设使用率为80%,这样就可以限制服务进程的处理调用消息的数量,从而通过调用消息的优先级来处理调用消息,以及根据对应的服务进程的CPU使用率来确定处理该调用消息的服务进程,进而提高服务进程处理调用消息的效率,提高服务进程处理调用消息的时间。
图2是根据本发明实施例的一种远程过程调用协议的处理装置的示意图,如图2所示,该装置包括:发送单元21,用于远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,服务器的RPC服务进程有多个,每个服务进程之间对多个调用消息进行同步;接收单元23,用于RPC客户机接收到服务器的多个服务进程对多个调用信息对应的答复信息;处理单元25,用于RPC客户机根据多个调用信息对应的答复信息进行处理。
通过上述实施方式,可以利用远程过程调用协议RPC客户机的发送单元21来发送多个调用消息到服务器中,并通过RPC的客户机的接收单元23来接收多个服务进程对多个调用信息对应的答复信息,然后通过处理单元25处理该答复信息。在本发明实施例中,RPC客户机和服务器之间传送信息时,可以采用多个进程同步调用消息,然后RPC客户机可以对每个进程对应的调用消息的答复信息进行处理,通过多进程来传输、调用消息可以减少单进程传输所浪费的时间,并对各个进程的调用消息进行处理,提高RPC客户机服务的效率。进而解决相关技术中由于进程单一,导致在使用远程过程调用RPC时发送时间长、发送效率低的技术问题。
可选的,该装置还包括:分配单元,用于在RPC客户机发送多个调用消息到服务器之后,服务器将多个调用消息分配到多个服务进程中;第一获取单元,用于服务器获取多个服务进程返回的答复信息;发送模块,用于服务器将答复信息发送给RPC客户机。
其中,分配单元包括:第一确定模块,用于对于多个调用消息中每个调用消息,确定调用消息中每个调用消息的优先级等级;第二确定模块,用于根据调用消息的优先级等级确定与调用消息相匹配的服务进程;第一分配模块,用于将调用消息分配到与其相匹配的服务进程。
通过上述实施方式,可以通过第一确定模块根据调用消息的优先级来确定相匹配的服务进程,由于每个服务进程在答复该调用消息时的参数不同,因此对于优先级高的调用消息可以更快的答复。其中,服务进程的参数可以包括:答复速度、答复大小等。根据调用消息的优先级等级可以确定与调用消息相匹配的服务进程,并将调用消息分配到与其向匹配的服务进程中,最后可以将不同服务进程的答复消息返回至服务器中。
对于上述实施方式,该装置还包括:第二获取单元,用于根据调用消息的优先级等级确定与调用消息相匹配的服务进程之后,在将调用消息分配到与其相匹配服务进程之前,获取与调用消息相匹配的服务进程的CPU使用率;判断单元,用于判断与调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;第二分配模块,用于若与调用消息相匹配的服务进程的CPU使用率未超过预设使用率,将调用消息分配到与其相匹配的服务进程;第三确定模块,用于若与调用消息相匹配的服务进程的CPU使用率超过预设使用率,重新根据调用消息的优先级等级确定与调用消息相匹配的服务进程。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例中任意一项的远程过程调用协议的处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,其特征在于,处理器用于运行程序,其中,程序运行时执行上述实施例中任意一项的远程过程调用协议的处理方法。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,服务器的RPC服务进程有多个,每个服务进程之间对多个调用消息进行同步;RPC客户机接收到服务器的多个服务进程对多个调用信息对应的答复信息;RPC客户机根据多个调用信息对应的答复信息进行处理。
在RPC客户机发送多个调用消息到服务器之后,该实施方式还包括:服务器将多个调用消息分配到多个服务进程中;服务器获取多个服务进程返回的答复信息;服务器将答复信息发送给RPC客户机。
服务器将多个调用消息分配到多个服务进程中包括:对于多个调用消息中每个调用消息,执行如下操作:确定调用消息中每个调用消息的优先级等级;根据调用消息的优先级等级确定与调用消息相匹配的服务进程;将调用消息分配到与其相匹配的服务进程。
根据调用消息的优先级等级确定与调用消息相匹配的服务进程之后,在将调用消息分配到与其相匹配服务进程之前,该方法还包括:获取与调用消息相匹配的服务进程的CPU使用率;判断与调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;若与调用消息相匹配的服务进程的CPU使用率未超过预设使用率,将调用消息分配到与其相匹配的服务进程;若与调用消息相匹配的服务进程的CPU使用率超过预设使用率,重新根据调用消息的优先级等级确定与调用消息相匹配的服务进程。本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:远程过程调用协议RPC客户机发送多个调用消息到服务器,其中,服务器的RPC服务进程有多个,每个服务进程之间对多个调用消息进行同步;RPC客户机接收到服务器的多个服务进程对多个调用信息对应的答复信息;RPC客户机根据多个调用信息对应的答复信息进行处理。
在RPC客户机发送多个调用消息到服务器之后,该实施方式还包括:服务器将多个调用消息分配到多个服务进程中;服务器获取多个服务进程返回的答复信息;服务器将答复信息发送给RPC客户机。
服务器将多个调用消息分配到多个服务进程中包括:对于多个调用消息中每个调用消息,执行如下操作:确定调用消息中每个调用消息的优先级等级;根据调用消息的优先级等级确定与调用消息相匹配的服务进程;将调用消息分配到与其相匹配的服务进程。
根据调用消息的优先级等级确定与调用消息相匹配的服务进程之后,在将调用消息分配到与其相匹配服务进程之前,该方法还包括:获取与调用消息相匹配的服务进程的CPU使用率;判断与调用消息相匹配的服务进程的CPU使用率是否超过预设使用率;若与调用消息相匹配的服务进程的CPU使用率未超过预设使用率,将调用消息分配到与其相匹配的服务进程;若与调用消息相匹配的服务进程的CPU使用率超过预设使用率,重新根据调用消息的优先级等级确定与调用消息相匹配的服务进程。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。