thrift介绍

thrift链接:https://www.cnblogs.com/sxrtb/p/12209455.html

参考:https://www.cnblogs.com/newboys/p/9366762.html

一  描述thrift(个人英语飘过六级,翻译的肯定不是很准确,请谅解。)

  

  Apache thrift框架,旨在处理扩语言的开发服务,它结合代码生产引擎的软件栈,构建高效地和无缝地运行在C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml和Delphi等语言中的服务。

 

二  文件说明和使用方式(thrift通过一个中间语言IDL(接口定义语言)来定义RPC的数据类型和接口)

  我们需要定义一个thrift文件,这个文件是由thrift tpe(相当于实体类,也可以理解为使我们需要进行服务间传递的消息)和Service(这个Service就相当于一个service类,中间有各种方法)构成的接口定义文件。文件中定义的Service将有服务端进行实现,并由客户端进行调用。thrift编辑器将你定义的thrift文件生产为你客户端和服务端使用的资源文件。通过运行thrift --gen <language> <Thrift filename>来生产资源文件。

  --language是你使用的编程语言。

  --Thrift filename生产文件的位置

 

三 协议栈结构

  最上层是用户自行实现的业务逻辑代码.第二层是由thrift编译器自动生成的代码,主要用于结构化数据的解析,发送和接收。TServer主要任务是高效的接受客户端请求,并将请求转发给Processor处理。Processor负责对客户端的请求做出响应,包括RPC请求转发,调用参数解析和用户逻辑调用,返回值写回等处理。从TProtocol以下部分是thirft的传输协议和底层I/O通信。TProtocol是用于数据类型解析的,将结构化数据转化为字节流给TTransport进行传输。TTransport是与底层数据传输密切相关的传输层,负责以字节流方式接收和发送消息体,不关注是什么数据类型。底层IO负责实际的数据传输,包括socket、文件和压缩数据流等。

 

四 核心文件

  thrift中核心文件就是.thrift文件,这个文件所包含的内容其实并不复杂,包括Base Types,Special Types,Structs,Containers,Exceptions和Services。文档说明http://thrift.apache.org/docs/types#special-types

 

  Base Types为基础类型,就这几种;Special Types没怎么用;Structs就相当于一个实体类;Containers就是thrift提供的集合支持;Exceptions就是thrift中提供的异常支持;Service就是我们进行通讯的接口。

  具体使用可以参看我博客中的使用方式。

 

posted on 2020-01-18 18:36  xingshouzhan  阅读(2603)  评论(1编辑  收藏  举报

导航