1. 程式人生 > >Thrift介紹

Thrift介紹

released sin ble php con odi lan 編碼 官方

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介紹