Thrift是facebook向apache推出的为了解决大数据量交换问题的开源项目。开发人员需要定义类似于c的结构体的数据结构和服务接口,利用thrift工具自动产生构建RPC客户端和服务器所需的所有代码。它可以跨语言,可靠通信。
thrift设计一:将传输层从代码层中分离出来
thrift设计二:将数据结构从传输层中分离出来
本质上,它是以普通二进制格式写数据
实际操作过程:
1.如果要给服务命名,可以考虑使用此种格式:namespace java com.epri.distriAuto.thrift
2.Thrift 中的基本数据类型
类型 描述
bool true, false
byte 8位的有符号整数
i16 16位的有符号整数
i32 32位的有符号整数
i64 64位的有符号整数
double 64位的浮点数
string UTF-8编码的字符串
binary 字符数组
struct 结构体
list 有序的元素列表,类似于STL的vector
set 无序的不重复元素集,类似于STL的set
map key-value型的映射,类似于STL的map
exception 是一个继承于本地语言的exception基类
service 服务。包含多个函数接口(纯虚函数)
3.下载thrift编译工具,此工具可以根据定义好的文件生成服务的客户端和服务端代码
编译格式如下:
thrift -gen java test.thrift
开发:
1.编译成功后会生成一个gen-java包,把里面的类文件加入到工程中,注意导入thrift相关jar包:
slf4j-log4j12-1.5.11.jar,slf4j-api-1.5.11.jar,log4j-1.3alpha-8.ja,,libthrift.jar
2.编写接口实现类,实现test.Iface接口
3.编写服务端代码
4.编写客户端代码
5.测试,运行
说明:
1.thrift编译工具我已放入要下载的文件,名字就是thrift
2.工程中涵盖运行所需全部jar包,直接下载运行即可
分享到:
相关推荐
Thrift java demo实例,通过简单的例子,帮助初学者理解Thrift
此文件为自己在Mac电脑上写的thrift的demo,使用maven 管理了小程序,并用thrift生成了源码,其中对thrift生成的源码,把override注销了,其他的没处理,如果感兴趣参考博客:...
libthrift-1.0.0.jar,thrift例子,thrift源码 里面有你想要java版的thrift全部文件
thrift 通讯 简单的 Thrift 实现实例,使读者能够快速直观地了解什么是 Thrift 以及如何使用 Thrift 构建服务。
NULL 博文链接:https://andilyliao.iteye.com/blog/1931911
thrift运行成功的例子,用于在服务端运行shell命令,并将命令的执行结果返回给客户端。 服务端代码是python写的,客户端代码是php写的
一个java和python的thrift例子,其中java作为服务端,python作为客户端
具体文章请看 https://blog.csdn.net/bwangk/article/details/83017030 thrift实现一个客户端和服务端c++ 语言的RPC连接例子
网上一直搜不到Windows下QT使用thrift的例子,自己整了个 QT版本 5.8.0 Boost版本 boost_1_61_0 Thrift版本 thrift-0.10.0
thrift通过http实现的一个java例子!
thrift中间件小例子
一个例子c++php通讯的thrift例子。使用了facebook的thrift。学习一下。
简要介绍了thrift框架的原理及使用方法,附带一个搭建thrift工程的例子。
thrift 教程,有文档和demo工程,demo中包含了thrift的连接池和连接重试机制,同时也有thrift的几种不同的IO模式的例子
详细介绍了Apache Thrift在Ubuntu以及Windows下基于C++和Java语言的安装和运行。附有小例子,亲自测试通过。所述方法网上应该有教程,但大多零散不统一或者不完整,因此本人整理了一份,特来分享。
例子:public interface ICommonUserService { public User login(int id, String name); public User getUserById(long id); public boolean saveUser(User user); public List ...
包含thrift五种模式下的例子;阻塞(2种), 非阻塞(3种);可做参考
NULL 博文链接:https://wanghongxu.iteye.com/blog/2187778