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
原文地址:https://www.cnblogs.com/energy1010/p/10048817.html