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

 

原文地址:https://www.cnblogs.com/energy1010/p/10048817.html