Thrift介紹
Thrift 是Apache下的可擴展,跨語言軟件框架,可以無縫連接C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml Delphi等其他語言
目前最新版本: 0.11.0 (released on 2017-DEC-07).
Maven依賴:
<dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.11.0</version> </dependency>
官方網站: http://thrift.apache.org/
git路徑: git clone https://github.com/apache/thrift.git
安裝
1. 安裝Thrift
2. 安裝Thrift編譯器, 用於自動生成服務器端與客戶端的源碼
3.編寫 接口定義 .thrift文件, 接口定義文件中包含 類型定義 和服務接口定義
4. 生成server, client 的源碼 thrift --gen <language> <Thrift filename>
Thrift Types
Thrifty type 基本使用各種語言的基礎抽象類型, Thrift IDL詳細介紹了各種語言的對應Thrift 類型
基礎類型
- bool: A boolean value (true or false)
- byte: An 8-bit signed integer
- i16: A 16-bit signed integer
- i32: A 32-bit signed integer
- i64: A 64-bit signed integer
- double: A 64-bit floating point number
- string: A text string encoded using UTF-8 encoding
特殊類型
binary: 未編碼字節流
N.B.: string類型的特殊形式, 更適用於Java.
Structs結構體
Containers容器
- list: list集合
- set: set集合
- map: map字典
Exceptions
Services服務
service <name> {
<returntype> <name> (<arguments>) [throws (<exceptions>)]
............
}
關於thrift協議的了解,可以參考 white paper: http://thrift.apache.org/static/files/thrift-20070401.pdf
Thrift介紹