這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一.準備和編寫IDL
thrift的介紹和安裝見上文
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
Struct 包含其他資料類型的結構體,與c語言的struct類同
Containers 容器
list
set
map
Exceptions 異常
Services 服務,也就是提供給遠程調用的方法
IDL定義的例子demo.thrift:
//namespace go demo.rpc
service RpcService{
list<string> funCall(1:i64 callTime, 2:string funCode, 3:map<string, string> paramMap),
}
IDL檔案支援include
注釋支援shell和c兩種語言的注釋方式
#comment
//comment
/*comment*/
二.thrift編譯器的使用
thrift --gen go -o rpcgo demo.thrift
--gen參數指定輸出語言 -o指定輸出目錄
go語言有兩個額外的參數
package_prefix= Package prefix for generated files.
thrift_import= Override thrift package import path (default:git.apache.org/thrift.git/lib/go/thrift)
使用方法
thrift --gen go:package_prefix=ownprefix,thrift_import=ownthriftpackage -o rpcgo demo.thrift
參考:Golang通過Thrift架構完美實現跨語言調用