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包,直接下载运行即可
分享到:
相关推荐
Java Thrift Demo例子详解 Thrift是一种开源的跨语言服务开发框架,由Facebook于2007年开源,现由Apache基金会维护。它允许开发者定义服务接口,然后自动生成多种编程语言的代码,使得不同语言之间可以进行高效、...
在"thrift例子"中,我们主要会接触到以下知识点: 1. **Thrift IDL**:Thrift IDL文件是用Thrift语法编写的,类似于Java的接口或者protobuf的.proto文件,它定义了服务接口、数据结构(structs)和枚举类型(enums...
通过运行这个例子,我们可以了解Thrift如何将服务定义、服务实现、客户端调用和服务响应这些环节整合在一起,形成一个完整的通信系统。Thrift的优势在于它的跨语言支持,使得不同语言开发的服务能够无缝交互,同时...
在这个例子中,我们将探讨如何使用Qt来实现一个基于Thrift的C++客户端和服务端的RPC(远程过程调用)连接。 首先,Thrift IDL文件(.thrift)是整个服务的核心,它定义了服务接口和数据结构。例如,我们可能会有一...
此文件为自己在Mac电脑上写的thrift的demo,使用maven 管理了小程序,并用thrift生成了源码,其中对thrift生成的源码,把override注销了,其他的没处理,如果感兴趣参考博客:...
libthrift-1.0.0.jar,thrift例子,thrift源码 里面有你想要java版的thrift全部文件
在“thrift运行成功的例子”中,我们看到一个服务端使用 Python 编写,而客户端使用 PHP 编写。这样的设计允许不同的技术栈之间进行无缝通信,体现了 Thrift 的核心价值。 1. **Thrift IDL(接口定义语言)**:服务...
Thrift 是一个开源的跨语言服务开发框架,由 Facebook 在 2007 年创建并贡献给了 Apache 基金会。它提供了一种高效、灵活且可扩展的机制来构建分布式服务,使得不同编程语言之间可以方便地进行通信。在本示例中,...
在这个"thrift的java和python结合例子"中,我们将探讨如何使用Thrift在Java和Python之间建立通信。 首先,Thrift通过定义接口描述文件(.thrift)来规范服务的接口。这个文件使用Thrift IDL(Interface Description...
在这个“thrift通过http传输的java例子”中,我们将深入探讨Thrift如何与HTTP协议结合,以及如何在Java环境中实现这一过程。 首先,我们需要理解Thrift的核心概念:服务定义。在Thrift IDL文件中,我们可以定义服务...
在"使用例子.txt"文件中,可能详细描述了如何使用这两个版本的Thrift工具来创建、编译和运行一个简单的服务。 总的来说,Thrift是一个强大的工具,特别适合构建大规模、跨语言的分布式系统。通过理解Thrift IDL和...
标题 "Thrift的第一个例子" 暗示我们将探讨Apache Thrift这一开源框架的入门应用。Apache Thrift是一种软件框架,用于构建跨语言的服务。它允许使用定义的数据结构和服务接口(通常在Thrift IDL,Interface ...
一个简单的Thrift IDL文件例子如下: ```thrift service MyService { void ping(), string echo(1:string message) } ``` - **编译器**:Thrift编译器读取这些IDL文件,并生成对应编程语言的客户端和服务器端...
在这个例子中,我们使用的是HUST镜像站点下载的thrift 0.11.0版本的压缩包。 2. 上传安装包到虚拟机 将下载好的thrift安装包上传到虚拟机上,一般通过scp命令或者使用虚拟机提供的共享文件夹功能来实现。 3. 解压...
在这个例子中,我们有两个版本的Thrift:thrift-0.9.0.exe和thrift-0.8.0.tar.gz。`.exe`文件是Windows下的可执行程序,可以直接运行;而`.tar.gz`文件是Linux或Unix系统的归档文件,需要解压后再进行编译。在这里,...
在这个例子中,我们定义了一个名为`MyService`的服务,其中有一个方法`sayHello`,接受一个字符串参数`name`并返回一个字符串。 接下来,我们需要使用Thrift编译器将`.thrift`文件转换为Java和PHP代码。在Java中,...
在这个例子中,`Calculator`服务提供了两个方法:`add`和`subtract`,分别用于计算两个整数的和与差。 在压缩包中的"testThriftCode"可能包含以下部分: 1. **Thrift IDL 文件**:如`calculator.thrift`,定义了...
在这个例子中,我们定义了一个名为 `Calculator` 的服务,它有一个 `add` 方法,接受一个 `CalculatorRequest` 参数并返回一个 `CalculatorResponse` 结果。 #### 六、总结 Thrift 是一个强大的工具,用于构建可...