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

技术编号:14557918 阅读:43 留言:0更新日期:2017-02-05 12:21
本发明专利技术涉及一种基于Thrift数据格式的混合架构消息系统及消息传输方法,其中,消息系统包括:基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。与现有技术相比,本发明专利技术具有结构简单、维护成本低、风险低等优点。

Mixed architecture message system based on Thrift data format and message transmission method

The invention relates to a transmission system of Thrift hybrid architecture message data format and message based method, the message system includes: basic protocol establishment module, according to the Thrift interface definition language to establish the basic protocol; TCP connection module, the client and server are used to establish the connection between the TCP, and through the heartbeat messages to maintain this TCP connection for the long connection; message exchange module, according to the basic protocol for the exchange of messages between the client and the server; service module, according to the Thrift Thrift service interface definition language server, the client receives processing results to a Thrift service, and through remote procedure call function to provide the Thrift service. Compared with the prior art, the invention has the advantages of simple structure, low maintenance cost and low risk.

【技术实现步骤摘要】

本专利技术涉及计算机网络
,尤其是涉及一种基于Thrift数据格式的混合架构消息系统及消息传输方法
技术介绍
Thrift是一种远程服务调用(RPC)的框架,支持自定义服务接口并提供远程客户端调用,通过使用一种语言无关的接口定义语言IDL(InterfaceDefinitionLanguage),可以生成多种编程语言的客户端,从而实现一种服务能够被多种不同语言的客户端调用。本质上thrift所提供的是一种不同机器之间消息交互的系统,并提供了完整的协议栈。但是,由于Thrift是一种RPC系统,所以只能是被动地提供服务供客户端访问服务,类似于HTTP协议,这是一种短连接的服务,每次调用服务都需要重新连接才能调用服务,服务端并不能主动向客户端发送消息,虽然可以重用一个连接,但是仍不具备长连接方式所需的功能,而且服务器端只能被动地等待客户端调用并回复消息,在需要保持长连接,并且服务器端需要向客户端发送消息的系统环境中就无法发挥作用。采取在客户端方面实现服务这种方式也可以解决问题,但是这种方式需要客户端方面对外部提供访问端口,在某些环境中,由于安全性等限制,不能随意开通访问端口,这种方式是无法实现的。另一方面,在已有的支持长连接的系统中,使用的协议可能是一种自定义的数据格式,当在两种场景都需要支持的系统中,会不可避免的需要做大量繁琐的数据格式之间的转换,导致给系统会带来一些不必要的性能损耗,同时也增加了系统的复杂度,使得系统难以维护。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种结构简单、维护成本低、风险低的基于Thrift数据格式的混合架构消息系统及消息传输方法。本专利技术的目的可以通过以下技术方案来实现:一种基于Thrift数据格式的混合架构消息系统,包括:基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。所述消息交换模块中,进行交换的数据格式为Thrift数据格式。所述服务实现模块设置于服务器中。所述服务实现模块包括:监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访问,并实时监测是否收到客户端对Thrift服务的处理结果。一种基于Thrift数据格式的混合架构消息传输方法,包括以下步骤:1)基于Thrift接口定义语言建立一基本协议;2)在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接;3)客户端与服务器通过所述基本协议进行消息交换,服务调用者对服务器进行远程过程调用功能,通过客户端与服务器的长连接实现对客户端的间接调用。所述步骤3)中,间接调用具体为:301)服务器基于Thrift接口定义语言建立Thrift服务,并通过所述长连接通知客户端,客户端实现所述Thrift服务的处理过程;302)服务器监听Thrift服务的外部访问端口,当监听到有服务调用者通过远程过程调用功能访问Thrift服务的消息时,服务器将此消息以Thrift数据格式通过长连接发送到客户端;303)客户端将Thrift服务对应的处理结果以Thrift数据格式返回给服务器;304)服务器实时监听与客户端连接的端口,当监听到有客户端的处理结果数据返回时,将此数据作为Thrift服务的结果返回给服务调用者。与现有技术相比,本专利技术具有以有益效果:(1)本专利技术在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接,使得采用thrift技术的系统能够同时支持长连接的模式,以实现从服务器端主动向客户端发送消息的功能,架构简单易懂,也易于实现。(2)本专利技术以Thrift数据格式进行消息传递,消除了RPC系统与长连接系统中不同消息格式之间的转换,使得系统的开销得到降低,从而降低了消息传递的延迟;同时由于不再需要维护多种不同的数据格式,有效降低了维护的成本。(3)本专利技术中,服务调用者通过远程过程调用功能实现对客户端的间接调用,不需要客户端对外暴露访问端口,降低了客户端被攻击的风险。附图说明图1为本专利技术的原理及消息传递框图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。本实施例提供一种基于Thrift数据格式的混合架构消息系统,包括基本协议建立模块、TCP连接建立模块、消息交换模块和服务实现模块,其中,基本协议建立模块用于根据Thrift接口定义语言建立一基本协议;TCP连接建立模块用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块设置于服务器中,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。Thrift服务包括获取客户端指定目录下的文件等。服务实现模块中还包括监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访问,并实时监测是否收到客户端对Thrift服务的处理结果。基于上述消息系统可实现混合架构消息传输方法,客户端和服务器以及外部服务访问者与服务器之间的相互交互的示意图如图1所示,消息传输方法包括以下步骤:1)基于Thrift接口定义语言建立一基本协议。2)在客户端与服务器之间建立TCP连接,并通过心跳消息保持此TCP连接为长连接。3)客户端与服务器通过所述基本协议进行消息交换,服务调用者对服务器进行远程过程调用功能,通过客户端与服务器的长连接实现对客户端的间接调用,具体为:301)服务器基于Thrift接口定义语言建立Thrift服务,并通过所述长连接通知客户端,客户端实现所述Thrift服务的处理过程;302)服务器监听Thrift服务的外部访问端口,当监听到有服务调用者通过远程过程调用功能访问Thrift服务的消息时,服务器将此消本文档来自技高网
...

【技术保护点】
一种基于Thrift数据格式的混合架构消息系统,其特征在于,包括:基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消息保持此TCP连接为长连接;消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift服务。

【技术特征摘要】
1.一种基于Thrift数据格式的混合架构消息系统,其特征在于,包括:
基本协议建立模块,用于根据Thrift接口定义语言建立一基本协议;
TCP连接建立模块,用于建立客户端与服务器间的TCP连接,并通过心跳消
息保持此TCP连接为长连接;
消息交换模块,用于根据所述基本协议交换客户端与服务器间的消息;
服务实现模块,用于根据所述Thrift接口定义语言实现服务器的Thrift服务,
接收客户端对Thrift服务的处理结果,并通过远程过程调用功能向外提供所述Thrift
服务。
2.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征
在于,所述消息交换模块中,进行交换的数据格式为Thrift数据格式。
3.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征
在于,所述服务实现模块设置于服务器中。
4.根据权利要求1所述的基于Thrift数据格式的混合架构消息系统,其特征
在于,所述服务实现模块包括:
监听单元,用于实时监测是否有服务调用者发起对所建立的Thrift服务的访
问,并实时监测是否收到客户端对Thrift服务的处理结果。
5.一种基于Thrif...

【专利技术属性】
技术研发人员:邢保松
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:上海;31

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

1