zoukankan      html  css  js  c++  java
  • Thrift(转)

    1Thrift 概念

    Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

    thrift最初由facebook开发,07年四月开放源码,085月进入apache孵化器。

    Thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。

    看到这里,感觉thrift的作用与webservice差不多,webservice使用xml文件传输,文件太大,效率不高,thrift使用二进制数据,效率更高!

    2Thrift Installing and Compiling 安装与编译

    操作系统:Ubuntu 8.0+

    Thrift安装包:thrift-0.7.0.tar.gz

    下载地址:http://labs.renren.com/apache-mirror//thrift/0.7.0/thrift-0.7.0.tar.gz

    具体安装过程:

    ① Required packages 安装相关支持包

    sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev

    ② tar -xvf thrift-0.7.0.tar.gz 解压缩文件

    ③ cd thrift-0.7.0 进入Thrift安装主目录

    ④ ./configure (可能出现权限不够,请修改文件权限sudo chmod 777 configure)

    ⑤ sudo make 

    ⑥ sudo make install

    测试安装编译是否成功:

    在终端输入thrift出现下面的信息,okinstall thrift success. 

    Usage: thrift [options] file 

    Options: 

      -version    Print the compiler version 

      -o dir      Set the output directory for gen-* packages 

                   (default: current directory) 

      -I dir      Add a directory to the list of directories                 

    searched for include directives \

    -nowarn     Suppress all compiler warnings (BAD!)

    ….

    ⑦编译Thrift支持Java的相关Jar文件

    cd ./lib/java

    然后编译ant (如果没有安装ant的话,sudo apt-get install ant,何为ant?类似c++make)

    会生成一个build文件夹,里面存放的是Thrift支持JAVA的相关jar

    3Thrift Tutorial (for java) 测试教程

    使用Thrift Tutorial的具体步骤:

    cd http://www.cnblogs.com/tutorial  进入Thrift自带的tutorial文件夹

    thrift -r --gen java tutorial.thrift生成gen-java目录

    cd java

    然后编译ant 生成相关java文件

    现在就可以运行demo进行测试了~

    开启服务端 sh  ./JavaServer &

    再打开一个终端,模拟客户端访问sh   ./JavaClient

    运行结果如图:

    1、service端:

          2、Client端:

     

     

     

     

  • 相关阅读:
    创建双向数据绑定 ng-model
    数据绑定指令
    ios操作系统输入完成后,键盘没有弹下去的问题
    anjularjs 指令(1)
    关于苹果手机模态框问题
    手机端页面中去除a标签点击时的默认样式
    ffsfsdsfsfd
    8、排列组合
    7、递归的二分查找
    6、递归
  • 原文地址:https://www.cnblogs.com/hitwtx/p/2337023.html
Copyright © 2011-2022 走看看