Chinaunix首页 | 论坛 | 博客
  • 博客访问: 447219
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1916
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-11 22:01
个人简介

从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。

文章分类

全部博文(80)

文章存档

2017年(11)

2015年(3)

2014年(33)

2013年(33)

分类: 高性能计算

2015-05-06 20:59:47

1. 简单介绍

Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件自动生成服务代码框架。用户只要在其之前进行二次开发就行,对于底层的RPC通讯等都是透明的。目前它支持的语言有C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.

2. 下载与安装

可以在http://incubator.apache.org/thrift/download/去下载它的最新版本,目前最新版本是0.5.0。另外你也可以check出它的svn,方法如下:

svn co thrift

cd thrift

在它的jira中看到,它的0.6版本也很快就会出来了。

我的本本是debian 6.0,如果用ubuntu的兄弟安装方法也是一样的

点击(此处)折叠或打开

  1. tar -zxvf thrift-0.5.0.tar.gz
  2. cd thrift-0.5.0
  3. ./configure
  4. make
  5. sudo make install

这时thrift的代码生成器和一些库文件就生成好了。

你可以用如下命令看一下thrift的版本信息

3. 一个简单的例子

在thrift源代码目录有一个叫tutorial的目录,进行其中后运行thrift命令生成相应的服务代码:

点击(此处)折叠或打开

  1. $ thrift -r --gen cpp tutorial.thrift // -r对其中include的文件也生成服务代码 -gen是生成服务代码的语言

运行完之后会在当前目录看到一个gen-cpp目录,其中就是thrfit命令生成的代码

这时你cd到tutorial/cpp目录,运行make,生成相应的CppServer与CppClient程式。

这时你可以用./CppServer运行服务端,让其监听一个特定的端口

这时你可以用./CppClient运行客户端程式,让其去连接服务端,调用其所对应的服务。默认调用后会输出如下信息:

点击(此处)折叠或打开

  1. lemo@debian:~/Workspace/Facebook/Thrift/thrift-0.5.0/tutorial/cpp$ ./CppServer
  2. Starting the server...
  3. ping()
  4. add(1,1)
  5. calculate(1,{4,1,0})
  6. calculate(1,{2,15,10})
  7. getStruct(1)
如果你的终端中也出现了如上的信息,恭喜你,运行成功了。如果在运行CppServer的时候找不到动态库,看看你是不是运行了make install,如果运行了,再运行一下sudo ldconfig试试。再用ldd CppServer看一下它有没有找到相应的动态库了。

阅读(1436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~