基于Thrift数据格式的混合架构消息系统及消息传输方法

文档序号:9754559阅读:628来源:国知局
基于Thrift数据格式的混合架构消息系统及消息传输方法
【技术领域】
[0001]本发明涉及计算机网络技术领域,尤其是涉及一种基于Thrift数据格式的混合架构消息系统及消息传输方法。
【背景技术】
[0002]Thrift是一种远程服务调用(RPC)的框架,支持自定义服务接口并提供远程客户端调用,通过使用一种语言无关的接口定义语言IDL(Interface Definit1n Language),可以生成多种编程语言的客户端,从而实现一种服务能够被多种不同语言的客户端调用。本质上thrift所提供的是一种不同机器之间消息交互的系统,并提供了完整的协议栈。
[0003]但是,由于Thrift是一种RPC系统,所以只能是被动地提供服务供客户端访问服务,类似于HTTP协议,这是一种短连接的服务,每次调用服务都需要重新连接才能调用服务,服务端并不能主动向客户端发送消息,虽然可以重用一个连接,但是仍不具备长连接方式所需的功能,而且服务器端只能被动地等待客户端调用并回复消息,在需要保持长连接,并且服务器端需要向客户端发送消息的系统环境中就无法发挥作用。采取在客户端方面实现服务这种方式也可以解决问题,但是这种方式需要客户端方面对外部提供访问端口,在某些环境中,由于安全性等限制,不能随意开通访问端口,这种方式是无法实现的。
[0004]另一方面,在已有的支持长连接的系统中,使用的协议可能是一种自定义的数据格式,当在两种场景都需要支持的系统中,会不可避免的需要做大量繁琐的数据格式之间的转换,导致给系统会带来一些不必要的性能损耗,同时也增加了系统的复杂度,使得系统难以维护。

【发明内容】

[0005]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种结构简单、维护成本低、风险低的基于Thrift数据格式的混合架构消息系统及消息传输方法。
[0006]本发明的目的可以通过以下技术方案来实现:
[0007]一种基于Thrift数据格式的混合架构消息系统,包括:
[0008]基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;
[0009]TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;
[0010]消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;
[0011]服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。
[0012]所述消息交换模块中,进行交换的数据格式为Thrift数据格式。
[0013]所述服务实现模块设置于服务器中。
[0014]所述服务实现模块包括:
[0015]监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访问,并实时监测是否收到客户端对Thrift服务的处理结果。
[0016]一种基于Thrift数据格式的混合架构消息传输方法,包括以下步骤:
[0017]I)基于Thrift接口定义语言建立一基本协议;
[0018]2)在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接;
[0019]3)客户端与服务器通过所述基本协议进行消息交换,服务调用者对服务器进行远程过程调用功能,通过客户端与服务器的长连接实现对客户端的间接调用。
[0020]所述步骤3)中,间接调用具体为:
[0021 ] 301)服务器基于Thrift接口定义语言建立Thrift服务,并通过所述长连接通知客户端,客户端实现所述Thr if t服务的处理过程;
[0022]302)服务器监听Thrift服务的外部访问端口,当监听到有服务调用者通过远程过程调用功能访问Thrift服务的消息时,服务器将此消息以Thrift数据格式通过长连接发送到客户端;
[0023]303)客户端将Thrift服务对应的处理结果以Thrift数据格式返回给服务器;
[0024]304)服务器实时监听与客户端连接的端口,当监听到有客户端的处理结果数据返回时,将此数据作为Thrift服务的结果返回给服务调用者。
[0025]与现有技术相比,本发明具有以有益效果:
[0026](I)本发明在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接,使得采用thrift技术的系统能够同时支持长连接的模式,以实现从服务器端主动向客户端发送消息的功能,架构简单易懂,也易于实现。
[0027](2)本发明以Thrift数据格式进行消息传递,消除了 RPC系统与长连接系统中不同消息格式之间的转换,使得系统的开销得到降低,从而降低了消息传递的延迟;同时由于不再需要维护多种不同的数据格式,有效降低了维护的成本。
[0028](3)本发明中,服务调用者通过远程过程调用功能实现对客户端的间接调用,不需要客户端对外暴露访问端口,降低了客户端被攻击的风险。
【附图说明】
[0029]图1为本发明的原理及消息传递框图。
【具体实施方式】
[0030]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0031]本实施例提供一种基于Thrift数据格式的混合架构消息系统,包括基本协议建立模块、TCP连接建立模块、消息交换模块和服务实现模块,其中,基本协议建立模块用于根据Thrif t接口定义语言建立一基本协议;TCP连接建立模块用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块设置于服务器中,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。Thrift服务包括获取客户端指定目录下的文件等。
[0032]服务实现模块中还包括监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访问,并实时监测是否收到客户端对Thrift服务的处理结果。
[0033]基于上述消息系统可实现混合架构消息传输方法,客户端和服务器以及外部服务访问者与服务器之间的相互交互的示意图如图1所示,消息传输方法包括以下步骤:
[0034]I)基于Thrift接口定义语言建立一基本协议。
[0035]2)在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接。
[0036]3)客户端与服务器通过所述基本协议进行消息交换,服务调用者对服务器进行远程过程调用功能,通过客户端与服务器的长连接实现对客户端的间接调用,具体为:
[0037]301)服务器基于Thrift接口定义语言建立Thrift服务,并通过所述长连接通知客户端,客户端实现所述Thr if t服务的处理过程;
[0038]302)服务器监听Thrift服务的外部访问端口,当监听到有服务调用者通过远程过程调用功能访问Thrift服务的消息时,服务器将此消息以Thrift数据格式通过长连接发送到客户端;
[0039]303)客户端将Thrift服务对应的处理结果以Thrift数据格式返回给服务器;
[0040]304)服务器实时监听与客户端连接的端口,当监听到有客户端的处理结果数据返回时,将此数据作为Thrift服务的结果返回给服务调用者。
[0041]以Thrift服务为获取客户端指定目录下的文件为例,服务器建立该Thrift服务,在一台客户端机器上启动客户端程序,使得客户端连接到启动的服务器,并保持长连接,在另外一台机器(服务访问者)上对提供Thrift服务的服务器进行访问,比如指定一个路径,之后即可方便获得客户端对应目录的文件列表。
【主权项】
1.一种基于Thrift数据格式的混合架构消息系统,其特征在于,包括: 基本协议建立模块,用于根据Thrif t接口定义语言建立一基本协议; TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接; 消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息; 服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。2.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征在于,所述消息交换模块中,进行交换的数据格式为Thrift数据格式。3.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征在于,所述服务实现模块设置于服务器中。4.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征在于,所述服务实现模块包括: 监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访问,并实时监测是否收到客户端对Thrift服务的处理结果。5.—种基于Thrift数据格式的混合架构消息传输方法,其特征在于,包括以下步骤: 1)基于Thrift接口定义语言建立一基本协议; 2)在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接; 3)客户端与服务器通过所述基本协议进行消息交换,服务调用者对服务器进行远程过程调用功能,通过客户端与服务器的长连接实现对客户端的间接调用。6.根据权利要求5所述的基于Thrif t数据格式的混合架构消息传输方法,其特征在于,所述步骤3)中,间接调用具体为: 301)服务器基于Thrift接口定义语言建立Thrift服务,并通过所述长连接通知客户端,客户端实现所述Thr if t服务的处理过程; 302)服务器监听Thrift服务的外部访问端口,当监听到有服务调用者通过远程过程调用功能访问Thrift服务的消息时,服务器将此消息以Thrift数据格式通过长连接发送到客户端; 303)客户端将Thrift服务对应的处理结果以Thrift数据格式返回给服务器; 304)服务器实时监听与客户端连接的端口,当监听到有客户端的处理结果数据返回时,将此数据作为Thrift服务的结果返回给服务调用者。
【专利摘要】本发明涉及一种基于Thrift数据格式的混合架构消息系统及消息传输方法,其中,消息系统包括:基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。与现有技术相比,本发明具有结构简单、维护成本低、风险低等优点。
【IPC分类】H04L29/08, H04L29/06
【公开号】CN105516097
【申请号】CN201510856872
【发明人】邢保松
【申请人】上海爱数信息技术股份有限公司
【公开日】2016年4月20日
【申请日】2015年11月30日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1