程序员人生 网站导航

ubuntu下Thrift快速入门

栏目:互联网时间:2014-10-26 08:00:00

一、thrift简介

自己百度谷歌一下把。

二、thrift安装

(1)安装一些必要库

sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libboost-system-dev libboost-filesystem-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
对于其他系统,如centos、mac、windows,安装要求见下面官网教程:

http://thrift.apache.org/docs/install/

(2)下载

http://thrift.apache.org/download我下载的版本是0.9.1

(3)解压安装

解压后,进入根目录,输入:

./configure && make
如果最后输出一个ERROR,说 "libcrypto required",可能是需要安装libssl - dev的包

sudo apt-get install libssl-dev


如果输入thrift   -version,提示说thrift-compiler没有安装,怎安装上。


sudo apt-get install thrift-compiler
安装完compiler后,就可以开始编写thrift文件了。

三、thrift基本语法和架构

1、Thrift基础架构

Thrift 是一个服务端和客户端的架构体系,从我个人的感官上来看 Thrift 是一个类似XML-RPC+Java-to- IDL+Serialization Tools=Thrift 的东东,Thrift 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports),通过 IDL 脚本对传输数据的数据结构(struct) 和传输数据的业务逻辑(service)根据不同的运行环境快速的构建相应的代码,并且通过自己内部的序列化机制对传输的数据进行简化和压缩提高高并发、 大型系统中数据交互的成本,下图描绘了 Thrift 的整体架构,分为 6 个部分:


(1).你的业务逻辑实现(You Code)

(2).客户端和服务端对应的 Service

(3).执行读写操作的计算结果

(4).TProtocol

(5).TTransports

(6).底层 I/O 通信
图 中前面 3 个部分是 1.你通过 Thrift 脚本文件生成的代码,2.图中的褐色框部分是你
根据生成代码构建的客户端和处理器的代码,3.图中红色的部分是 2 端产生的计算结
果。从 TProtocol 下面 3 个部分是 Thrift 的传输体系和传输协议以及底层 I/O 通信,
Thrift 并且提供 堵塞、非阻塞,单线程、多线程的模式运行在服务器上,还可以配合
服务器/容器一起运行,可以和现有 JEE 服务器/Web 容器无缝的结合。


2、数据类型

A、Base Type :基本类型

(1)bool:布尔类型(true或false)

(2)byte:8位有符号整数

(3)i16:16位有符号整数

(4)i32:32位有符号整数

(5)i64:64位有符号整数

(6)double:64位浮点数

(7)string:文本字符串,使用UTF-8编码

B、Container:容器:如list、set、map

C、Struct:结构体类型

如下面的一个例子:

struct People {

1:string name;

2:string sex;

}

struct和C里面的结构体很类似。

D、Exception:异常类型

E、Service:定义对象的接口和一系列方法

如下面一个例子:

service  DemoService {

string getUserName(1:i32 id);

i32 add(1:i32 num1, 2:i32 num2);

}

一个service对应一个类,里面是一些方法。

如getUserName方法就是根据一个id返回一个字符串,add方法是对num1和num2进行求和。


3、协议

Thrift可以在kehudaun和服务端之间传输选择通信协议,协议总体上分为文本(text)和二进制(binary)传输协议。

* TBinaryProtocol

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐