==== 介绍 ====
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。
**thrift的工作流大致如下**
- Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型
- 然后通过thrift的编译器生成不同目标语言的rpc框架代码
- 目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml
- 生成的代码实现了RPC协议层和传输层。
- 生成的代码包括Iface(服务端必须实现的接口)
- 生成的代码包括Clinet(客户端必须实现的接口)
- 编写一个server。实现Iface接口
- 编写一个client。实现Client接口
- 然后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