thrift是什么?

thrift是一套开源RPC框架,最初由facebook开发,后进入apache进行孵化。thrift最大的特点是可以实现跨语言的开发。

thrift框架结构

Thrift Stack

  • ×××部分代表由thrift描述文件生成的代码
  • 棕色部分和红色部分代表分别使用×××部分代码生成的客户端代码和服务器端代码
  • 紫色部分和蓝色部分代表thrift运行依赖的库

thrift支持的protocols

  • TBinaryProtocol 普通二进制格式

  • TCompactProtocol 压缩二进制格式,传输效率更高

  • TJSONProtocol JSON格式

  • ...

 

thrift支持的transports

  • TSocket 普通阻塞式I/O传输

  • TFramedTransport server采用非阻塞格式时需采用此传输,按块传输

  • ...

thrift支持的服务器端类型

  • TSimpleServer 阻塞式、单线程

  • TThreadPoolServer 阻塞式、多线程

  • TNonblockingServer 非阻塞式、多线程

使用thrift进行开发(java)

  • 编写thrift描述文件,如何编写并生成java代码可参考官网资料

  •  

    通过引入生成的java代码开发服务器端和客户端程序

服务器端和客户端程序的开发需要依赖libthrift jar包,可按如下方式生成:

官网下载最新tar包,进入解压文件下lib/java子目录下,执行ant命令即可生成libthrift jar包

服务器端、客户端开发基本步骤可参考如下链接:

http://jnb.ociweb.com/jnb/jnbJun2009.html

http://www.micmiu.com/soa/rpc/thrift-sample/