跨语言RPC库thrift的安装和使用

跨语言RPCthrift的安装和使用

操作系统: centos7

1、简介

首先介绍下thrift的作用,thrift的全名叫做Apache thrift,是一款软件开发RPC框架,可以很高效地实现跨语言的RPC服务。

2、目标

安装支持c++java两种语言的thrift

(一)准备java环境

oracle官网下载java jdk

我下载的是jdk-8u144-linux-x64.tar.gz ,解压到/opt下,添加到环境变量,修改/etc/profile文件

#for java jdk

export JAVA_HOME=/opt/jdk1.8.0_144

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

CLASSPATH=./:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#安装JAVA ANT

官网下载 http://ant.apache.org/bindownload.cgi

wget http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.10.1-bin.zip

export ANT_HOME=/usr/local/apache-ant-1.8.4

export PATH=$PATH:$ANT_HOME/bin

(二)准备c++ 环境

安装编译环境

sudo yum install automake libtool flex bison pkgconfig gcc-c++

准备boost

安装boost到系统 ./b2执行sudo ./b2 install

(三)编译和安装thrift

官网下载http://thrift.apache.org/download ,最好下载release版本

wget “http://www.apache.org/dyn/closer.cgi?path=/thrift/0.10.0/thrift-0.10.0.tar.gz”

#安装

./configure --without-csharp --without-erlang --without-perl --without-php --without-php_extension --without-haskell  --with-boost=/usr/local

make -j; make install

安装到系统之后,可以查看头文件路径( /usr/local/include/thrift ) 库文件路径(

/usr/local/lib/ )

添加到环境变量修改/etc/profile文件

export D_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

遇到的问题

1. ant的版本为1.10.1的时候,跟configure里要求的1.7比较失败

解决办法:修改configure文件,搜索ANT_VALID,把1.71.0

2. Thrift-0.10.0 CenOS 7 编译错误 error: expected ')' before 'PRIu32'

解决办法:http://www.cnblogs.com/wanghaiyang1930/p/6404847.html

(四)使用thrift

参考http://blog.163.com/zhangjie_0303/blog/static/9908270620140311022650/

1) 编辑thrift文件

2) 生成代码

thrift -r --gen cpp student.thrift

 

3) 增加客户端代码和Makefile文件

cd gen-cpp

4) 生成客户端和服务端可执行文件,执行测试

make; ./CppServer &;./CppClient

发现客户端端可以跟服务端通信了,达到了远程调用的目的


原文地址:https://www.cnblogs.com/qq575654643/p/11135444.html