thrift總結

定義:

Apache Thrift是一個facebook創建的RPC框架,如今是一個Apache的頂級項目。Thrift容許經過一個跨語言的定義文件的方式定義數據類型和服務接口,【這個文件】做爲【RPC】客戶端和服務器通訊的標準php

thrift安裝:


①安裝依賴:$ 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======================================================框架

 http://files.cnblogs.com/files/bestzhang/helloword.zipflex

相關文章
相關標籤/搜索