Thrift的安装和简单使用
2011-07-05 12:15
507 查看
准备
到http://incubator.apache.org/thrift/download/ 下载Thrift的源码包thrift-incubating-0.2.0.tar.gz。
环境
1.遵从POSIX的**NIX系统(笔者使用的是Debian5.0),或者在Windows下安装Cygwin
2.g++ 3.3.5+(http://gcc.gnu.org/)
3.boost 1.33.1+。boost 1.33.1+只是官方要求的安装thrift的最低boost版本,笔者建议你下载一个最新的版本(http://www.boost.org/),因为可能之后使用到的Facebook其他开源框架要求更高版本的boost,而不限于boost.1.33.1。如scribe(facebook的分布式日志服务器),就需要boost1.36+。
4.lex和yacc的运行时库也需要安装
编译thrift源码所需要的工具
1.GNU build tools:autoconf 2.59+ (http://www.gnu.org/software/autoconf/), automake 1.9+(http://www.gnu.org/software/automake/), libtool 1.5.24+(http://www.gnu.org/software/libtool/)
2.pkg-config(http://pkg-config.freedesktop.org/wiki/)
3.lex and yacc (http://dinosaur.compilertools.net/)。已经有flex和bison
所需语言库
C++ :Boost 1.33.1+ ,libevent (可选,用来创建非阻塞服务器) ,zlib (可选)
Java :Java 1.5+ ,Apache Ant ,Apache Ivy,Apache Commons Lang,SLF4J
C#: Mono 1.2.4+ 或者 Visual Studio 2005+
Python: 2.4+
PHP: 5.0+
Ruby: 1.8+
Erlang: R12
Perl 5: Bit::Vector ,Class::Accessor
以上的语言库是看你具体需要thrift生成怎样的语言,并不是必须全部都安装。
配置与编译thrift源码
生成配置脚本
./bootstrap.sh 配置安装参数(这里不作任何配置,使用默认配置)
./configure make thrift
make make install 其中make install是需要root身份的。这样thrift就完成了安装工作
Thrift(http://github.com/facebook/thrift)是一个跨语言服务部署架构,2007年由Facebook开发,之后在2008年加到Apache计划中(http://incubator.apache.org/thrift/)。它是类似于SOAP,CORBA以及Google Protocol Buffers这样的服务架构。Thrift提供了完整client/server RPC的实现,只需要定义好中间定义语言,就可以生成指定语言的代码(包括client和server)。
Thrift能生成的语言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml
使用thrift,以下例子你可以在http://incubator.apache.org/thrift/中找到。
定义.thrift接口文件。
你需要知道thrift所支持的类型(http://wiki.apache.org/thrift/ThriftTypes)
下面是一个简述:
在了解过thrift内置类型之后,我们可以简单地定义一个服务,把用户的信息从前端发送到服务器,然后当需要的时候再从服务器获取某个用户的信息:
如果我们需要用python来做输出语言。就在命令行中输入:
UserStorage.py中的Client就是客户端调用的接口,只需要创建一个Client实例就可以调用例子中的store和retrieve的接口。而Iface就是服务端所需要实现的接口,对应例子中的store和retrieve的逻辑处理。
ttypes.py是存放枚举类型的结构。
UserStorage-remote.py是一个客户端调用服务接口的demo示例,想知道详细的可以去看看。
http://blog.csdn.net/MyOnlyLee/archive/2010/02/04/5289296.aspx
http://blog.csdn.net/MyOnlyLee/archive/2010/02/04/5289380.aspx
到http://incubator.apache.org/thrift/download/ 下载Thrift的源码包thrift-incubating-0.2.0.tar.gz。
环境
1.遵从POSIX的**NIX系统(笔者使用的是Debian5.0),或者在Windows下安装Cygwin
2.g++ 3.3.5+(http://gcc.gnu.org/)
3.boost 1.33.1+。boost 1.33.1+只是官方要求的安装thrift的最低boost版本,笔者建议你下载一个最新的版本(http://www.boost.org/),因为可能之后使用到的Facebook其他开源框架要求更高版本的boost,而不限于boost.1.33.1。如scribe(facebook的分布式日志服务器),就需要boost1.36+。
4.lex和yacc的运行时库也需要安装
编译thrift源码所需要的工具
1.GNU build tools:autoconf 2.59+ (http://www.gnu.org/software/autoconf/), automake 1.9+(http://www.gnu.org/software/automake/), libtool 1.5.24+(http://www.gnu.org/software/libtool/)
2.pkg-config(http://pkg-config.freedesktop.org/wiki/)
3.lex and yacc (http://dinosaur.compilertools.net/)。已经有flex和bison
所需语言库
C++ :Boost 1.33.1+ ,libevent (可选,用来创建非阻塞服务器) ,zlib (可选)
Java :Java 1.5+ ,Apache Ant ,Apache Ivy,Apache Commons Lang,SLF4J
C#: Mono 1.2.4+ 或者 Visual Studio 2005+
Python: 2.4+
PHP: 5.0+
Ruby: 1.8+
Erlang: R12
Perl 5: Bit::Vector ,Class::Accessor
以上的语言库是看你具体需要thrift生成怎样的语言,并不是必须全部都安装。
配置与编译thrift源码
生成配置脚本
./bootstrap.sh 配置安装参数(这里不作任何配置,使用默认配置)
./configure make thrift
make make install 其中make install是需要root身份的。这样thrift就完成了安装工作
Thrift(http://github.com/facebook/thrift)是一个跨语言服务部署架构,2007年由Facebook开发,之后在2008年加到Apache计划中(http://incubator.apache.org/thrift/)。它是类似于SOAP,CORBA以及Google Protocol Buffers这样的服务架构。Thrift提供了完整client/server RPC的实现,只需要定义好中间定义语言,就可以生成指定语言的代码(包括client和server)。
Thrift能生成的语言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml
使用thrift,以下例子你可以在http://incubator.apache.org/thrift/中找到。
定义.thrift接口文件。
你需要知道thrift所支持的类型(http://wiki.apache.org/thrift/ThriftTypes)
下面是一个简述:
类型 | 描述 |
bool | true, false |
byte | 8位的有符号整数 |
i16 | 16位的有符号整数 |
i32 | 32位的有符号整数 |
i64 | 64位的有符号整数 |
double | 64位的浮点数 |
string | UTF-8编码的字符串 |
binary | 字符数组 |
struct | 结构体 |
list<type> | 有序的元素列表,类似于STL的vector |
set<type> | 无序的不重复元素集,类似于STL的set |
map<type1,type2> | key-value型的映射,类似于STL的map |
exception | 是一个继承于本地语言的exception基类 |
service | 服务。包含多个函数接口(纯虚函数) |
struct UserProfile { 1: i32 uid, 2: string name, } service UserStorage { void store(1: UserProfile user), UserProfile retrieve(1: i32 uid) }把以上代码存到 service.thrift文件中。
如果我们需要用python来做输出语言。就在命令行中输入:
thrift –r –gen py service.thrift之后,你就会在当前目录下看到一个新建的目录叫”gen-py”,在里面你就可以看到由service.thrift生成的python服务接口代码。
UserStorage.py中的Client就是客户端调用的接口,只需要创建一个Client实例就可以调用例子中的store和retrieve的接口。而Iface就是服务端所需要实现的接口,对应例子中的store和retrieve的逻辑处理。
ttypes.py是存放枚举类型的结构。
UserStorage-remote.py是一个客户端调用服务接口的demo示例,想知道详细的可以去看看。
http://blog.csdn.net/MyOnlyLee/archive/2010/02/04/5289296.aspx
http://blog.csdn.net/MyOnlyLee/archive/2010/02/04/5289380.aspx
相关文章推荐
- thrift 简单安装以及rpc使用心得
- Thrift的安装和简单使用
- Redis之在Linux上安装和简单的使用
- redis简介安装简单使用
- fabric 安装及简单使用 (centos6)
- SQLite3:安装和简单使用
- 对于CocoaPods的简单理解,实践安装使用过程和常见问题
- 【MongoDB】1.安装--以及简单使用
- zookeeper 的安装配置及简单使用
- Apache Thrift的简单使用
- 最简单的cvs与MyEclipse安装配置使用
- CKEditor 3.0(FCKEditor3.0)的简单安装配置使用
- Flume安装及简单使用
- VisualStudio 2010 Beta1 开始简单用一下(2008共存)-从安装到使用发几张图片 (*^__^*)
- 02. 使用上述01安装库实现最简单的网络爬虫
- centos安装supervisor守护进程与简单配置使用
- Android之ButterKnife(一)安装及简单使用
- Python+Selenium中级篇之1-Python IDE工具-PyCharm的安装和简单使用
- windows AND Ubuntu MongoDB安装及简单使用
- linux 安装memcache 到简单使用