thrift 是一个跨语言的通讯框架,支持c++, java, .net, python,php等。你可以用一种语言写一个服务器,然后另外一种语言写一个客户端,快速搭建一个rpc调用服务。而且它很轻量级,只要引入特定库便可以运行服务和客户端,不需要再安装配置其它复杂的环境和容器。

下面介绍如何在ubuntu11.10上安装thrift0.8.0。

1. 下载thrift,页面http://thrift.apache.org/download/里有相应链接。
我下的是0.8.0:
wget http://labs.renren.com/apache-mirror//thrift/0.8.0/thrift-0.8.0.tar.gz

2. 解压:
tar -zxf thrift-0.8.0.tar.gz
cd thrift-0.8.0

3. 安装依赖:
sudo apt-get install libboost-dev automake libtool flex \
bison pkg-config g++ autoconf autotools-dev flex libtool byacc

4. ./configure && make && make install

上面如果没出什么问题的话就安装好了。

注意:如果是安装thrift-0.9.0,则需要把qt功能关掉,否则会出错。,
另外如果在ubuntu下面安装,在make install的适合可能会遇到权限问题,因为需要复制一些文件到系统目录,所以需要sudo。
./configure --with-qt4=no && make && sudo sudo make install

下面我们用python简单的测试一下是否安装成功。

1. 首先构建python的thrift库:

cd lib/py
sudo python setup.py install

2. 生成python例子的相关代码:

cd http://www.cnblogs.com/tutorial
thrift --gen py thrift.thrift
thrift --gen py shared.thrift
cp py/* gen-py
cd gen-py

3.运行例子:
 python PythonServer.py &
python PythonClient.py

我运行的时候报错,说getaddrinfo参数类型错误。看了一下源码,发现TSocket类的构造方法第一个参数是host,第二个是port。二PythonServer.py代码里面只给了一个参数,是端口9090。TSocket构建的时候将端口当成了host,类型不对,所以报错。将PythonServer.py的84行改一下就好了》

老的:transport = TSocket.TServerSocket("localhost",9090)

新的:transport = TSocket.TServerSocket(9090)

好了,收功了,以后我会讲一下如何用java搭建服务,php调用。

转载于:https://www.cnblogs.com/alala666888/archive/2012/02/25/2367886.html

thrift入门(1) -- 安装配置相关推荐

  1. Maven - 基础入门与安装配置

    Maven - 基础入门与安装配置 [1]Maven基础入门 Maven的核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须由特定的插件来完成.而插件本身并不包含在Maven的核心程序中. 当我们 ...

  2. LINUX新手入门及安装配置FAQ(http://bbs.blueidea.com/viewthread.php?tid=635906amp;page=)

    LINUX新手入门及安装配置FAQ 剑气凌人 [楼主] 尖脐 荣誉管理团队 帖子 6386  体力 10046   威望 168   当前 北京 海淀区 发短消息 个人网站 1# 大 中 小 发表于 ...

  3. [转贴]LINUX新手入门及安装配置FAQv

    [转贴]LINUX新手入门及安装配置FAQ 网络技术论坛 > Unix/Linux 专区 > Unix/Linux安装和管理 linmingchongAug 24 2004, 10:47 ...

  4. caffe linux 教程,Caffe 深度学习入门教程 - 安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN_Linux教程_Linux公社-Linux系统门户网站...

    安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN 一.版本 Linux系统:Ubuntu 14.04 (64位) 显卡:Nvidia K20c cuda: cuda_7.5.18 ...

  5. [转贴]LINUX新手入门及安装配置FAQ

    入门篇安装篇 Q:如何制作安装磁盘? 你可以使用两中方法制作安装磁盘.在M$-DOS下,可以使用专门为其开发的rawrite命令(安装光盘/dosutils下),将boot.img(安装光盘/imag ...

  6. RabbitMQ入门之安装配置与简单实例

    为什么80%的码农都做不了架构师?>>>    简介 由于某些原因,今天接触了一下一个新的东西RabbitMQ( http://www.rabbitmq.com/)总的来说给人的感觉 ...

  7. python安装 + pycharm安装和入门学习 +安装配置TensorFlow

    参考博文https://blog.csdn.net/qq_32811489/article/details/78636049 进行pycharm的激活注册. 参考https://blog.csdn.n ...

  8. Vue入门(安装配置启动项目)

    学习本篇之前要具备一定的vue基础知识,可以先看一下Vue基础(环境配置.内部指令.全局API.选项.内置组件) 1.Vue-cli Vue-cli是vue官方出品的快速构建单页应用的脚手架,这里牵扯 ...

  9. VS/Xamarin Android入门(安装配置与基础控件)一

    一.安装和配置(以Visual Studio Pro 2015为例) Visual Studio2015直接提供了这个插件的选择项,稍微提示一下,如果要安装的话,最好准备好十个小时的打算,而且是网速不 ...

最新文章

  1. go语言笔记——defer作用DB资源等free或实现调试
  2. Matrix 矩阵
  3. 编程软件python中的if用法-给Python初学者的一些技巧
  4. 玩双节棍的算法工程师:鱼佬的数据挖掘之路!
  5. springboot使用j2cache框架和aspectj自定义缓存
  6. 『设计模式』一句话教你分清楚UML组合聚合和联系!
  7. Vue 2升级 Vue 3初探小细节
  8. java字符串常量池——字符串==比较的一个误区
  9. int指令02 - 零基础入门学习汇编语言65
  10. 力改变物体形状举例_对旋转问题的思考-在离心力确定的情况下,物体的旋转情况如何通过宇宙中的相对运动情况和质量分布确定?...
  11. Python使用BoundedSemaphore对象进行线程同步
  12. C++实践笔记(四)----AVL树的简单实现
  13. JS 浏览器差异(IE和FF)
  14. 百度网盘python客户端——筑梦之路
  15. 自学编程需要注意什么? 1
  16. 手机抓包 fiddler magicwifi
  17. uniapp对接微信公众号H5微信支付、分享、小程序隐藏右上角分享胶囊
  18. 游戏保护_CRC32检测
  19. 学习Python后,就业能从事哪些方向?
  20. 19种分布式系统设计模式

热门文章

  1. 【spring-session】介绍
  2. Spring cloud整合zookeeper
  3. Kubernetes基础学习(一)
  4. 怎么把丢失的计算机放回桌面,不小心把电脑桌面开始哪里放在右边了,怎么把它放回原处啊...
  5. javascript控制html高,Javascript可以控制css吗?
  6. streak10刷Linux,streak 10
  7. class mywnd : pubic qwidget是什么意思_学了这么久java反射,你知道class.forName和classloader的区别吗?...
  8. linux传统用户界面是,linux用户界面与Shell命令习题.doc
  9. elasticsearch mapping之store
  10. java高并发(九)线程封闭