Apache Thrift的简单使用

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119194.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stm32的sdio接口_STM32F411

    stm32的sdio接口_STM32F411一、SDIO接口简介SDIO,全称:SecureDigitalInputandOutput,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。SDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器等应用。STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SDI/O卡和CE-ATA

    2022年10月3日
    6
  • Idea激活码最新教程2023.1.7版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.1.7版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 1 7 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 1 7 成功激活

    2025年5月28日
    5
  • c++ map与unordered_map区别及使用

    c++ map与unordered_map区别及使用转自:https://blog.csdn.net/BillCYJ/article/details/78985895需要引入的头文件不同map:#include<map>unordered_map:#include<unordered_map>内部实现机理不同map:map内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二…

    2022年6月29日
    25
  • plc中scl语言_plc中scr是什么意思

    plc中scl语言_plc中scr是什么意思本人小白一个,只是刚刚学习scl,想与大家分享一下,如果您是大佬,请勿喷。在我的理解,PLC就像单片机,而scl语言就像C语言,例如scl语言里的=就是C里的==如果学过C将会事半功倍,SCL语言学习并不需要什么网上视频,譬如我在某宝上买了一个视频,发现他讲的没有什么用处你只要会按F1,都能把他讲的找到,西门子的帮助功能十分强大,你可以找到基础的+,-,*,/,=,:=等等,他都会教给你使用及符…

    2022年10月7日
    3
  • 道具库简介_保鲜库简介

    道具库简介_保鲜库简介作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。   初识STL:解答一些疑问   1.1一个最关心的问题:什么是STL   “什么是STL?”,假如你对STL还

    2022年10月16日
    6
  • Cooley-Tukey算法 (蝶形算法)

    Cooley-Tukey算法 (蝶形算法)

    2021年12月2日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号