Thrift介绍

Posted energy1010

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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介绍的主要内容,如果未能解决你的问题,请参考以下文章

Thrift架构介绍

Thrift使用指南

thrift介绍

Thrift 基础教程安装篇

使用Thrift RPC编写程序

thrift 单向通道服务的局限性