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

  • 相关阅读:
    开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅
    JVM垃圾回收器、内存分配与回收策略
    笔试编程(二) | 7种常见的排序算法解析(附实现代码)
    HBase高级特性、rowkey设计以及热点问题处理
    Geotools创建Feature的两种方式
    geotools实现追加数据到数据库
    Java连接mysql数据库经典代码
    leaflet加载高德地图和Geoserver的WMS服务
    geotools学习之连接数据库并获取数据
    LeaFlet中切片图层使用自定义坐标系
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/3991431.html
Copyright © 2011-2022 走看看