Thirft框架介绍

Thirft框架介绍

1.thrift 概述

 Thrift是Apache下的一个子项目,最早是Facebook的项目,后来Facebook提供给Apache作为开源项目,在官网上,Thrift被描述为“Scalable Cross-Language Services Implementation”,说的通俗一些,Thrift具有以下特征:

    1)它有自己的跨机器的通信框架,并提供一套库。

    2)它是一个代码生成器,按照它的规则,可以生成多种编程语言的通讯过程代码。

    3)支持多种语言之间通信(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa,                 Smalltalk和OCaml) 

2.支持的数据传输格式、数据传输方式和服务模型

(1)支持的传输格式

   TBinaryProtocol – 二进制格式.

   TCompactProtocol – 压缩格式

    TJSONProtocol – JSON格式

     TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易通过脚本语言解析。

    TDebugProtocol – 使用易懂的可读的文本格式,以便于debug

(2) 支持的数据传输方式

    TSocket -阻塞式socker

     TFramedTransport – 以frame为单位进行传输,非阻塞式服务中使用。

     TFileTransport – 以文件形式进行传输。

     TMemoryTransport – 将内存用于I/O. java实现时内部实际使用了简单的ByteArrayOutputStream。

      TZlibTransport – 使用zlib进行压缩, 与其他传输方式联合使用。当前无java实现。

(3)支持的服务模型

     TSimpleServer – 简单的单线程服务模型,常用于测试

     TThreadPoolServer – 多线程服务模型,使用标准的阻塞式IO。

     TNonblockingServer – 多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)

【参考】

http://dongxicheng.org/search-engine/thrift-framework-intro/

你可能感兴趣的:(Thirft框架介绍)