zoukankan      html  css  js  c++  java
  • Apache Thrift的简单使用

    Apache Thrift的简单使用

    ----------------------

    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 http://svn.apache.org/repos/asf/thrift/trunk thrift

    cd thrift

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

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

     

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

    你能够用例如以下命令看一下thrift的版本号信息

     

    3. 一个简单的样例

    在thrift源码文件夹有一个叫tutorial的文件夹,进行当中后执行thrift命令生成对应的服务代码:

     

    执行完之后会在当前文件夹看到一个gen-cpp文件夹,当中就是thrfit命令生成的代码

    这时你cd到tutorial/cpp文件夹,执行make,生成对应的CppServer与CppClient程式。

    这时你能够用./CppServer执行服务端,让其监听一个特定的port

    这时你能够用./CppClient执行client程式,让其去连接服务端,调用其所相应的服务。默认调用后会输出例如以下信息:

     

    假设你的终端中也出现了如上的信息,恭喜你,执行成功了。假设在执行CppServer的时候找不到动态库,看看你是不是执行了make install,假设执行了,再执行一下sudo ldconfig试试。再用ldd CppServer看一下它有没有找到对应的动态库了。

    4. 样例分析

    4.1 Thrift IDL的分析

    这边有两个IDL文件,内容例如以下:

     

    4.2 服务端与client代码的分析

       4.2.1 c++服务端

       在tutorial/cpp文件夹中的CppServer.cpp是它的服务代码,主要分成两部分,

       一部分是main方法用于做一些初始化与服务的启动,第二部分对于IDL中定义的接口的实现

      

    还有一部分例如以下:

     

    4.2.2 c++client

     

    4.2.3 其他代码的实现

    在tutorial文件夹中有其他代码的样例,如erl,java,python,perl,ruby等。

    5 參考

    1. http://incubator.apache.org/thrift/

    2. http://incubator.apache.org/thrift/static/thrift-20070401.pdf

  • 相关阅读:
    UVALive 7141 BombX
    CodeForces 722D Generating Sets
    CodeForces 722C Destroying Array
    CodeForces 721D Maxim and Array
    CodeForces 721C Journey
    CodeForces 415D Mashmokh and ACM
    CodeForces 718C Sasha and Array
    CodeForces 635C XOR Equation
    CodeForces 631D Messenger
    田忌赛马问题
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4017718.html
Copyright © 2011-2022 走看看