Apache Thrift是一个facebook创建的RPC框架,如今是一个Apache的顶级项目。Thrift容许经过一个跨语言的定义文件的方式定义数据类型和服务接口,【这个文件】做为【RPC】客户端和服务器通讯的标准php
①安装依赖:$ yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
②安装thrift:
下载:$ wget http://archive.apache.org/dist/thrift/0.9.0/thrift-0.9.0.tar.gz
解压:$ tar zxvf thrift-0.9.0
运行:$ cd thrift-0.9.0
$ ./bootstrap.sh
$ ./configure
$ make
$ make install
③安装handle基类:
$cd ./contrib/fb303/
$./bootstrap.sh
$./configure
$make
$make install
④验证:$ thrift -version
thrift version 0.9.0java
thrift经常使用命令:
thrift -r -gen cpp UserFileIdentify.thrift (c++)
thrift -r -gen java UserFileIdentify.thrift (java)
thrift -r -gen java UserFileIdentify.thrift (php)python
一个栗子(在10.0.0.40下)--------------------------------c++
dev@DEV101:~/pzhang$ rm -rf gen-java
dev@DEV101:~/pzhang$ ls
gen-php UserFileIdentify.thrift
dev@DEV101:~/pzhang$ thrift -r -gen java UserFileIdentify.thrift
dev@DEV101:~/pzhang$ ls
gen-java gen-php UserFileIdentify.thrift
dev@DEV101:~/pzhang$ cd gen-java/
dev@DEV101:~/pzhang/gen-java$ ls
ReceivedTRT.java UpdateValueByTableThriftService.javaapache
(1)基本概念
Thrift中的几个概念:
Server 服务模型
Handler 数据处理接口
Processor 数据处理对象
Protocol 数据传输协议
Transport 数据传输方式bootstrap
(2)支持的传输格式
TBinaryProtocol – 二进制格式.
TCompactProtocol – 压缩格式
TJSONProtocol – JSON格式
TSimpleJSONProtocol –提供JSON只写协议, 生成的文件很容易经过脚本语言解析。
TDebugProtocol – 使用易懂的可读的文本格式,以便于debug
(3) 支持的通讯方式(数据传输方式)(Transport)
TFileTransport:文件(日志)传输类,容许client将文件传给server,容许server将收到的数据写到文件中。
THttpTransport:采用Http传输协议进行数据传输
TSocket:采用TCP Socket进行数据传输
TZlibTransport:压缩后对数据进行传输,或者将收到的数据解压ruby
(4)客户端编写的通常步骤:
1. 建立Transport
2. 建立Protocol方式
3. 基于Transport和Protocol建立Client
4. 运行Client的方法服务器
==========================================一个demo======================================================框架