zoukankan      html  css  js  c++  java
  • 跨语言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

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


  • 相关阅读:
    PHP
    PHP
    PHP
    网站页面引导操作
    Solr与Tomcat的整合
    POI操作文档内容
    HashTable和HashMap的区别
    ArrayList、LinkedList、HashMap底层实现
    正则表达式语法
    Java并发编程:线程间通信wait、notify
  • 原文地址:https://www.cnblogs.com/qq575654643/p/11135444.html
Copyright © 2011-2022 走看看