专利名称:一种远程过程调用请求的处理方法和装置的制作方法
技术领域:
本发明涉及计算机网络技术领域,特别是涉及一种远程过程调用请求的 处理方法和装置。
背景技术:
RPC (Remote Procedure Calls,远程过程调用)是基于本地过程调用提出 的协议。本地过程调用是一种在单一计算机上运行的程序中传输控制和数据 的机制,而RPC将此机制扩展到位于通讯网络上的计算机之间传输控制与数 据。RPC采用的通讯协议为TCP (Transmission Control Protocol,传输控制协 议)/IP (Internet Protocol,网际协议),TCP/IP为RPC提供了基本的通信能 力,RPC在TCP/IP的基础上提供数据发送、接收和超时处理机制,完成调 用过程实现和任务调度。
现有技术中,RPC为每个客户端创建一个传输通道,而每个传输通道对 应一个TCP或者UDP (User Datagram Protocol,用户数据报协议)套接字 socket。 RPC将每个请求使用RPC接口的RPC请求作为一个任务,同时可能 有多个并发任务运行,但处理的传输通道只有一个,只能将任务放在任务队 列上等待处理。任务调度按照先来先服务的原则从任务队列中取出任务并使 任务运行,达成单一传输的效果。
发明人在实现本发明的过程中,发现现有技术至少存在如下问题
当大量RPC请求并发来临时,只有一个传输通道来处理,使得RPC请求 排队等待处理,调用请求时延随队列的长度急剧增加,无法充分利用高容量 网络的带宽资源,降低了网络传输性能。
发明内容
本发明实施例提供一种RPC请求的处理方法和装置,提高了基于RPC
的应用程序的传输性能。
本发明实施例一方面提出一种RPC请求的处理方法,包括 根据用户进程信息,向RPC请求分配预先建立的多条RPC传输通道中的 一条;
将所述RPC请求封装成协议报文,并将所述协议报文通过分配的RPC传 输通道传输到服务器端。
另一方面,本发明实施例还提出一种RPC请求的处理装置,包括
分配模块,用于根据用户进程信息,向RPC请求分配预先建立的多条RPC 传输通道中的一条;
封装模块,用于将所述RPC请求封装成协议报文;
传输模块,用于将所述封装模块封装的所述协议报文通过所述分配模块 分配的所述RPC传输通道传输到服务器端。
本发明实施例的技术方案具有以下优点,因为根据用户进程信息向RPC 请求分配传输通道,并发处理多个RPC请求,从而,减少了RPC请求时延, 提升了 RPC请求的传输速率。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1为本发明实施例中的一种RPC请求的处理方法流程图; 图2为本发明实施例中的处理RPC请求的一种具体实现方式流程图; 图3为本发明实施例中的一种RPC请求的处理装置结构图; 图4为本发明实施例中的一种RPC请求的处理装置具体结构图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行
清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创 造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图l所示,为本发明实施例中的一种RPC请求的处理方法流程图,包 括以下步骤
步骤IOI,才艮据用户进程信息,向RPC"i青求分配预先建立的多条RPC传 输通道中的一条。
本发明实施例中,存在多条RPC传输通道。RPC请求为用户向RPC客 户端发送的请求使用RPC接口的请求消息,RPC客户端接收到RPC请求后, 根据用户进程信息从多条RPC传输通道中为RPC请求分配一条服务于该RPC 请求的RPC传输通道。分配算法为哈希hash算法。
步骤102,将RPC请求封装成协议报文,并将协议报文通过分配的RPC 传输通道传输到服务器端。
RPC客户端根据用户进程信息和已配置的RPC传输通道,可以同时将多 个RPC请求封装成协议报文,并将该协议报文通过RPC传输通道传输到服务 器端。该协议报文为TCP报文或UDP报文。多条RPC传输通道同时处理并 发的RPC请求。相同的用户进程, 一般由同一个传输通道来服务,而同一条 RPC传输通道可能服务于多个用户进程。
本发明实施例的技术方案具有以下优点,因为根据用户进程信息向RPC 请求分配传输通道,并发处理多个RPC请求,减少了RPC请求时延,提升了 RPC请求的传输速率。
如图2所示,为本发明实施例中的处理RPC请求的一种具体实现方式流 程图,包括以下步骤
步骤201,配置多条RPC传输通道。
本发明实施例中,RPC传输通道不再是唯一的,而是可配置的多条RPC 传输通道。配置多条RPC传输通道,具体包括配置RPC传输通道的数量和 最大数据任务量。每条RPC传输通道对应一个TCP/UDP socket。
步骤202,根据用户进程信息,向RPC请求分配预先建立的多条RPC传
输通道中的一条。
RPC请求为用户向RPC客户端发送的请求使用RPC接口的请求消息, RPC客户端接收到RPC请求后,根据用户进程信息从多条RPC传输通道中 为RPC请求分配一条服务于该RPC请求的RPC传输通道。分配算法为hash 算法。
以RPC的一个重要应用NFS (Networking File System,网络文件系统) 为例,NFS利用RPC将本地的文件系统调用转换成RPC请求,并将该RPC 请求传输到远程计算机系统,操作远程计算机的文件系统,将操作结果返回 给NFS客户端。当多个用户釆用多个进程并发访问远程文件系统时,NFS客 户端向RPC客户端发起多个并发的RPC请求,RPC客户端根据用户进程信 息,从多条RPC传输通道中为每个并发的RPC请求分配一条服务于该RPC 请求的RPC传输通道。
步骤203,将RPC请求封装成协议报文,并将协议净艮文通过分配的RPC 传输通道传输到服务器端。
RPC客户端根据用户进程信息和已配置的RPC传输通道,可以同时将多 个RPC请求封装成协议报文,并将该协议报文通过RPC传输通道传输到服务 器端。该协议报文为TCP报文或UDP报文。多条RPC传输通道同时处理并 发的RPC请求。相同的用户进程, 一般由同一个传输通道来服务,而同一条 RPC传输通道可能服务于多个用户进程。NFS应用中,RPC客户端将封装后 的TCP/UDP报文传输到NFS服务器,达到并发传输的效果。
本发明实施例的技术方案具有以下优点,因为根据用户进程信息向RPC 请求分配传输通道,并发处理多个RPC请求,减少了RPC请求时延,提升了 RPC请求的传输速率,充分利用了高容量网络的带宽资源,提高了网络的传 输性能。
如图3所示,为本发明实施例中的一种RPC请求的处理装置结构图,包
括
分配模块301,用于根据用户进程信息,向RPC请求分配预先建立的多 条RPC传输通道中的一条。
本发明实施例中,存在多条RPC传输通道。RPC请求为用户向RPC客 户端发送的请求使用RPC接口的请求消息。分配模块301,用于根据用户进 程信息,从多条RPC传输通道中为RPC客户端接收到的RPC请求分配一条 服务于该RPC请求的RPC传输通道。分配算法为hash算法。
封装模块302,用于将RPC请求封装成协议报文。
封装模块302,用于根据用户进程信息和已配置的RPC传输通道,将多 个RPC请求封装成协议报文,该协议报文为TCP报文或UDP报文。
传输模块303,用于将封装模块302封装的协议才艮文通过分配模块301分 配的RPC传输通道传输到服务器端。
传输模块303 ,用于将根据RPC请求封装成的协议报文通过RPC传输通 道传输到服务器端。该协议报文为TCP报文或UDP报文。多条RPC传输通 道同时处理并发的RPC请求。相同的用户进程, 一般由同一个传输通道来服 务,而同一条RPC传输通道可能服务于多个用户进程。
本发明实施例的技术方案具有以下优点,因为根据用户进程信息向RPC 请求分配传输通道,并发处理多个RPC请求,减少了RPC请求时延,提升了 RPC请求的传输速率。
如图4所示,为本发明实施例中的一种RPC请求的处理装置具体结构图, 包括
配置模块401,用于配置多条RPC传输通道,供分配模块402使用。
本发明实施例中,RPC传输通道不再是唯一的,而是可配置的多条RPC 传输通道。配置模块401,用于配置多条RPC传输通道。配置多条RPC传输 通道,具体包括配置RPC传输通道的数量和最大数据任务量。每条RPC传 东叙通道对应一个TCP/UDP socket。
分配模块402,用于根据用户进程信息,向RPC请求分配预先建立的多 条RPC传输通道中的一条。
RPC请求为用户向RPC客户端发送的请求使用RPC接口的请求消息。 分配模块402,用于根据用户进程信息,从多条RPC传输通道中为RPC客户 端接收到的RPC请求分配一条服务于该RPC请求的RPC传输通道。分配算法为hash算法。
封装模块403,用于将RPC请求封装成协议报文。
封装模块403,用于根据用户进程信息和已配置的RPC传输通道,将多 个RPC请求封装成协议报文,该协议报文为TCP报文或UDP报文。
传输模块404,用于将封装模块403封装的协议"^艮文通过分配模块402分 配的RPC传输通道传输到服务器端。
传输模块404,用于将根据RPC请求封装成的协议报文通过RPC传输通 道传输到服务器端。该协议报文为TCP报文或UDP报文。多条RPC传输通 道同时处理并发的RPC请求。相同的用户进程, 一般由同一个传输通道来服 务,而同一条RPC传输通道可能服务于多个用户进程。
本发明实施例的技术方案具有以下优点,因为才艮据用户进程信息向RPC 请求分配传输通道,并发处理多个RPC请求,减少了 RPC请求时延,提升了 RPC请求的传输速率,充分利用了高容量网络的带宽资源,提高了网络的传 输性能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬 件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等) 执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应^L本发明的保护范围。
权利要求
1.一种远程过程调用RPC请求的处理方法,其特征在于,包括:根据用户进程信息,向RPC请求分配预先建立的多条RPC传输通道中的一条;将所述RPC请求封装成协议报文,并将所述协议报文通过分配的RPC传输通道向服务器端传输。
2、 如权利要求1所述RPC请求的处理方法,其特征在于,所述向RPC 请求分配预先建立的多条RPC传输通道中的一条之前,还包括配置所述多条RPC传输通道。
3、 如权利要求2所述RPC请求的处理方法,其特征在于,所述配置多条 RPC传输通道,具体包括配置RPC传输通道的数量和最大数据任务量。
4、 如权利要求1所述RPC请求的处理方法,其特征在于,所述协议报文 为传输控制协议TCP报文或用户数据报协议UDP报文。
5、 如权利要求1所述RPC请求的处理方法,其特征在于,通过哈希算法 向所述RPC请求分配所述预先建立的多条RPC传输通道中的一条。
6、 一种RPC请求的处理装置,其特征在于,包括分配模块,用于根据用户进程信息,向RPC请求分配预先建立的多条RPC 传输通道中的一条;封装模块,用于将所述RPC请求封装成协议报文;传输模块,用于将所述封装模块封装的所述协议报文通过所述分配模块 分配的所述RPC传输通道传输到服务器端。
7、 如权利要求6所述RPC请求的处理装置,其特征在于,还包括 配置模块,用于配置多条RPC传输通道,供所述分配模块使用。
8、 如权利要求6所述RPC请求的处理装置,其特征在于,所述封装模块 将所述RPC请求封装成协议报文中所述协议报文为传输控制协议TCP报文或 用户数据报协议UDP报文。
全文摘要
本发明实施例公开了一种RPC请求的处理方法,包括根据用户进程信息,向RPC请求分配预先建立的多条RPC传输通道中的一条;将所述RPC请求封装成协议报文,并将所述协议报文通过分配的RPC传输通道传输到服务器端。本发明实施例还公开了一种RPC请求的处理装置,包括分配模块,用于根据用户进程信息,向RPC请求分配预先建立的多条RPC传输通道中的一条;封装模块,用于将所述RPC请求封装成协议报文;传输模块,用于将所述封装模块封装的所述协议报文通过所述分配模块分配的所述RPC传输通道传输到服务器端。本发明实施例根据用户进程信息向RPC请求分配传输通道,提升了RPC请求的传输速率。
文档编号H04L29/08GK101374154SQ20081016767
公开日2009年2月25日 申请日期2008年10月22日 优先权日2008年10月22日
发明者钟吉林 申请人:成都市华为赛门铁克科技有限公司