一种大数据RPC的处理方法技术

技术编号:14690153 阅读:68 留言:0更新日期:2017-02-23 12:40
本发明专利技术提供一种大数据RPC的处理方法,包括:1)客户端基于所述简单数据构建请求头并在请求头的结尾加入大数据标识;2)客户端发送所述请求头并紧接着以数据流的形式直接发送未做打包处理的剩余数据;3)服务端识别出所述大数据标识时,立即对请求头中携带的简单数据进行处理;同时继续接收数据流;4)服务端在获得简单数据的返回值后,立即构造响应头并在响应头的结尾加入大数据标识;5)服务端将响应头返回给客户端。本发明专利技术适用于大数据场景下的远程过程调用;在有大数据传输的情况下也能达到即时处理的效果,能够提升用户体验;兼容传统RPC。

【技术实现步骤摘要】

本专利技术涉及大数据软件
,具体地说,本专利技术涉及一种大数据RPC(RPC全称为RemoteProcedureCallProtocol,即远程过程调用)的处理方法。
技术介绍
当前大数据应用与技术处于高速发展时期,为应对大数据的处理需求,构建分布式软件系统在所难免。分布式软件系统是支持分布式处理的软件系统,它通常是在由通信网络互联的多处理机体系结构上执行任务的系统。例如,在分布式计算机操作系统中,一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。而分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。现有技术中,很多分布式软件系统是基于RPC协议(即RemoteProcedureCallProtocol)构建的。例如,分布式操作系统的进程间通讯是操作系统必须提供的基本设施之一,分布式操作系统必须提供分布于异构的结点机上进程间的通讯机制,而RPC协议是实现消息传送模式的分布式进程间通讯的手段之一。再例如,在分布式数据库系统中,数据库一般驻存在服务器上,客户机通过远程数据库服务功能访问数据库服务器,而现有的远程数据库服务是使用RPC模式的。再例如,RPC机制与RPC工具为分布式应用程序设计提供了手段和方便,用户可以无需知道网络结构和协议细节而直接使用RPC工具设计分布式应用程序。RPC的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果。基于RPC机制,程序可以请求网络中另一台计算机上某程序的服务而不需知道网络细节。在RPC协议中,使用客户端/服务器模型(即client/server模型)。请求程序是客户端(client),而服务提供程序则为服务器(server)。就像一般的本地过程调用一样,RPC是一个同步操作,直到远程过程结果返回请求程序才可以挂起。尽管如此,使用轻质进程或线程时,它们共享同一地址空间,是允许多个RPC并发执行的。当使用RPC的程序语句被编译成可执行程序时,一个存根(stub)将会被包括在编译的代码中,它相当于远程过程代码(有时也称为具体实现代码)的代表。当程序运行,过程调用发生,存根收到请求并将其转发给本地计算机中的一个客户端运行时刻程序。这个客户端运行时刻程序知道如何访问远程计算机及服务器的应用程序,它将向网络发送请求远程过程的消息。类似地,服务器也包括一个运行时刻程序及与远程过程连接的存根程序,结果将以相同方式返回。以下是一个远程过程调用(RPC)的示例,它包括:1.调用客户端句柄;执行传送参数。2.调用本地系统内核发送网络消息。3.消息传送到远程主机。4.服务器句柄得到消息并取得参数。5.执行远程过程。6.执行的过程将结果返回服务器句柄。7.服务器句柄返回结果,调用远程系统内核。8.消息传回本地主机。9.客户端句柄由内核接收消息。10.客户端接收句柄返回的数据。综上所述,RPC协议已被广泛应用到分布式软件系统中,并且该协议具有诸多优点,例如用户可以无需知道网络结构和协议细节而直接使用RPC工具设计分布式应用程序。然而,当前对于大数据处理的需求越来越多,而现有的基于RPC协议的分布式软件系统在处理大数据时暴露出了反应速度慢,用户体验不佳等诸多问题。而另一方面,专门针对大数据的处理来开发全新的分布式软件系统成本十分高昂,并且难以满足用户对于兼容性要求。因此,当前迫切需要一种兼容性好并且能够提升反应速度和用户体验的基于大数据的远程过程调用解决方案。
技术实现思路
本专利技术的任务是提供一种兼容性好并且能够提升反应速度和用户体验的基于大数据的远程过程调用解决方案。本专利技术提供了一种大数据RPC的处理方法,涉及客户端和服务器端,包括下列步骤:1)客户端将待处理的大体积数据切分为简单数据和剩余数据两部分,基于所述简单数据通过RPC机制构建请求头并在请求头的结尾加入大数据标识;2)客户端通过RPC底层链路向服务器端发送所述请求头,并在所述请求头发送完毕后,利用同一RPC底层链路以数据流的形式直接发送未做打包处理的所述剩余数据;3)服务端通过RPC底层链路接收数据并进行解析,当识别出所述大数据标识时,立即对请求头中携带的简单数据进行处理;同时继续接收数据流形式的剩余数据并由所述远程服务代码对剩余数据进行处理;4)服务端在获得简单数据的返回值后,立即基于该简单数据的返回值通过RPC机制构造响应头并在响应头的结尾加入大数据标识;5)服务端通过RPC底层链路将响应头返回给客户端。其中,所述客户端包括调用者、代理对象和客户端RPC库;所述步骤1)包括下列子步骤:11)调用者将待处理的大体积数据切分为简单数据和剩余数据两部分,然后根据所需的处理方法调用对应的代理对象;12)代理对象基于所述简单数据通过RPC机制构建请求头并在请求头的结尾加入大数据标识;所述步骤2)包括下列子步骤:21)代理对象调用客户端RPC库通过RPC底层链路向服务端发送所述请求头;22)客户端RPC库将请求头发送完毕后利用同一RPC底层链路以数据流的形式直接发送未做打包处理的所述剩余数据。其中,所述服务器端包括服务器端RPC库、存根和远程服务代码;所述步骤3)包括下列子步骤:31)服务端RPC库通过RPC底层链路接收数据并对所接收的数据进行解析;32)服务端RPC库当识别出所述大数据标识时,判定先前所接收的数据为请求大数据处理的请求头,此时立即根据请求头中携带信息调用对应的存根;与此同时,服务端RPC库继续接收数据流形式的剩余数据;33)所述存根立即调用远程服务代码对请求头中携带的简单数据进行处理。其中,所述步骤4)包括下列子步骤:41)远程服务代码获得简单数据的返回值后,立即将该简单数据的返回值返回给所述存根;42)所述存根立即基于该简单数据的返回值通过RPC机制构造响应头并在响应头的结尾加入大数据标识。其中,所述步骤5)包括下列子步骤:51)所述存根构造响应头完毕后立即调用服务器端RPC库;52)服务器端RPC库通过RPC底层链路将响应头返回给客户端。其中,所述步骤41)还包括:远程服务代码在处理完简单数据后,继续读取来自于同一RPC底层链路的后续数据流并对后续数据流进行处理;所述大数据RPC的处理方法还包括步骤:6)远程服务代码在得到所述剩余数据的返回值后,利用服务器端RPC库以数据流的形式向客户端返回所述剩余数据的返回值。其中,所述步骤6)包括下列子步骤:61)所述服务器端RPC库在传输所述响应头完毕后继续维持所使用的RPC底层链路;62)远程服务代码在得到所述剩余数据的返回值后调用存根,所述存根不对所述剩余数据的返回值做打包处理,直接调用所述服务器端RPC库;63)所述RPC库通过传送所述响应头的RPC底层链路,将所述剩余数据的返回值传输给客户端。其中,所述的大数据RPC的处理方法还包括步骤:7)客户端RPC库接收并解析数据,当识别出所述大数据本文档来自技高网
...
一种大数据RPC的处理方法

【技术保护点】
一种大数据RPC的处理方法,包括下列步骤:1)客户端将待处理的大体积数据切分为简单数据和剩余数据两部分,针对所述简单数据,通过RPC机制构建请求头并在请求头中加入大数据标识;2)客户端通过RPC底层链路向服务器端发送所述请求头,并在所述请求头发送完毕后,利用同一RPC底层链路以数据流的形式直接发送未做打包处理的所述剩余数据;3)服务端通过RPC底层链路接收数据并进行解析,当识别出所述大数据标识时,立即对请求头进行处理;同时继续接收数据流形式的剩余数据并对剩余数据进行处理;4)服务端在获得简单数据的返回值后,立即针对该简单数据的返回值,通过RPC机制构造响应头并在响应头的结尾加入大数据标识;5)服务端通过RPC底层链路将响应头返回给客户端。

【技术特征摘要】
1.一种大数据RPC的处理方法,包括下列步骤:1)客户端将待处理的大体积数据切分为简单数据和剩余数据两部分,针对所述简单数据,通过RPC机制构建请求头并在请求头中加入大数据标识;2)客户端通过RPC底层链路向服务器端发送所述请求头,并在所述请求头发送完毕后,利用同一RPC底层链路以数据流的形式直接发送未做打包处理的所述剩余数据;3)服务端通过RPC底层链路接收数据并进行解析,当识别出所述大数据标识时,立即对请求头进行处理;同时继续接收数据流形式的剩余数据并对剩余数据进行处理;4)服务端在获得简单数据的返回值后,立即针对该简单数据的返回值,通过RPC机制构造响应头并在响应头的结尾加入大数据标识;5)服务端通过RPC底层链路将响应头返回给客户端。2.根据权利要求1所述的大数据RPC的处理方法,其特征在于,所述客户端包括调用者、代理对象和客户端RPC库;所述步骤1)包括下列子步骤:11)调用者将待处理的大体积数据切分为简单数据和剩余数据两部分,然后根据所需的处理方法调用对应的代理对象;12)代理对象基于所述简单数据通过RPC机制构建请求头并在请求头的结尾加入大数据标识;所述步骤2)包括下列子步骤:21)代理对象调用客户端RPC库通过RPC底层链路向服务端发送所述请求头;22)客户端RPC库将请求头发送完毕后利用同一RPC底层链路以数据流的形式直接发送未做打包处理的所述剩余数据。3.根据权利要求2所述的大数据RPC的处理方法,其特征在于,所述服务器端包括服务器端RPC库、存根和远程服务代码;所述步骤3)包括下列子步骤:31)服务端RPC库通过RPC底层链路接收数据并对所接收的数据进行解析;32)服务端RPC库当识别出所述大数据标识时,判定先前所接收的数据为请求大数据处理的请求头,此时立即根据请求头中携带信息调用对应的存根;与此同时,服务端RPC库继续接收数据流形式的剩余数据;33)所述存根立即调用远程服务代码对请求头中携带的简单数据进行处理。4.根据权利要求3所述的大数据RPC的处理方法,其特征在于,所述步骤4)包...

【专利技术属性】
技术研发人员:朱辉徐文朝刘伟平王海
申请(专利权)人:掌阅科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1