文档章节

【2016-04-19】thrift简单使用记录

rathan0
 rathan0
发布于 2016/04/19 11:58
字数 372
阅读 54
收藏 2

由于公司合并,跨部门接口调用比较多,虽然之前在接触hadoop/hive的时候见过thrift,这还是第一次使用thrift。

异地的同事丢给我一个thrift接口,看到之后我是发蒙的,真不知道这个东西要怎么使用,于是开始求助搜索引擎。

要用java调用thrift接口,首先要用thrift命令生成java代码。

步骤:

1、下载thrift压缩包。官方网址:https://thrift.apache.org/

官网上没找到以往的版本,于是从filewatcher这里下载压缩包。

2、解压tar包

tar -xf thrift-0.9.1.tar

3、安装:

安装过程参考README,大概是configure,make,make install

4、生成java service代码:

thrift --gen java /Users/rathan/Downloads/asyncquerier.thrift

一个200行的thrift文件,可以生成25k行代码。统计行数命令如下:

find /Users/rathan/asyncquerier/ -type f -name "*.java" -exec cat {} \; | grep -v '^$' | wc -l

5、使用java代码:

把java代码放到项目里,然后引入对应的libthrift jar包(小心版本冲突),写出对应的client端代码,就可以使用了。

以上


虽然现在写出来很简单,但是自己琢磨还是花了点时间的,thrift技术是一方面,还是有相关接口的使用,好长一段时间都在盯着代码发呆,现在我也没弄懂那些自动生成的代码。


© 著作权归作者所有

共有 人打赏支持
rathan0
粉丝 4
博文 66
码字总数 36282
作品 0
程序员
MariaDB 5.5.49 发布,流行的 MySQL 分支版本

MariaDB 5.5.49 发布了,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在...

淡漠悠然
2016/04/24
1K
6
Hive On Tez,Tez 和 MapReduce engine 性能对比

接上一篇文章: https://my.oschina.net/zhzhenqin/blog/781670 Tez On Yarn 安装成功后,是为了给 Hive 或者 Pig 提供执行引擎。 Hive 默认支持 MapReduce,Tez,Spark(在 SparkSQL 中支持...

震秦
2016/11/04
162
0
Thrift RPC基础学习总结

一.什么是Thrift? Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell...

IamOkay
2017/12/21
0
0
频繁添加删除osd,导致osd无法up

环境介绍 预上线系统,手工已经设置好crushmap,并且已经指定了osd.139所在的location 集群开启了noout(ceph osd set noout) ceph版本: 0.94.5 osd设置了osd crush update on start = false...

秦牧羊
2016/04/01
263
2
Percona-mysql MHA高可用实战方案

前言 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQLy高可用环境下故障切...

jxzhfei
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
2
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
118
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
4
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部