用户工具


介绍

Thrift是一个软件框架,用于支持可扩展的跨语言服务的开发,它无缝的与C++,Java,Python,PHP,Ruby,Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk,以及OCaml等语言结合。它起初是由Facebook开发的,后来开源到Apache Incubator。Thrift支持对象序列化/反序列化以及RPC服务编写。

说白了thrift就是一个跨语言的rpc调用。通过thrift编译器,用一个按thrift语法格式定义的文件,生成多种目标语言的rpc框架。

因为跨语言,所以我们可以选择一个拿手或合适语言编写server段。然后用任意语言编写client。

  1. Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型
  2. 然后通过thrift的编译器生成不同目标语言的rpc框架代码
    1. 目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml
    2. 生成的代码实现了RPC协议层和传输层。
    3. 生成的代码包括Iface(服务端必须实现的接口)
    4. 生成的代码包括Clinet(客户端必须实现的接口)
  3. 编写一个server。实现Iface接口
  4. 编写一个client。实现Client接口
  5. 然后client就可和server通信了

我们要安装的是第二步中的的thrift的编译器

安装步骤

操作系统:centos 6.5

  • 安装依赖
    yum -y install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel openssl-devel

  • 普通列表项目下载Thrift的软件包,并解压缩:

    wget http://apache.fayea.com/thrift/0.9.2/thrift-0.9.2.tar.gz
    tar zxvf thrift-0.9.2.tar.gz
    cd thrift-0.9.2
     ./configure
    make && make install
    # 默认安装到 /usr/local/bin/thrift ,所以不需要额外设置PATH

  • 测试是否安装成功

    thrift -version
    Thrift version 0.9.2