来了一个新公司,这家公司不再使用以前的dubbo RPC框架,改用Thrift框架了。经过一段时间的学习,发现Thrift比dubbo支持的语言更多,其他方面感觉并不比dubbo强多少。在这里不过多讨论两者的区别,有兴趣的读者可以留言一起讨论。
thrift是IDL(interface definition language)描述性语言的一个具体实现,根据IDL编写的文件可以使用thrift命令生成相应的代码。
1、数据基本类型
- bool:布尔值,true or false,对应java的boolean
- byte:8位有符号整数,对应java的byte
- i16:16位有符号整数,对应java的short
- i32:32位有符号整数,对应java的int
- i64:64位有符号整数,对应java的long
- double:64位浮点数,对应java的double
- string:utf-8编码的字符串,对应java的String
2、结构体类型
- struct:定义公共的对象,类似C语言中的结构体定义,对应java的JavaBean
3、容器类型
- list:对应java的ArrayList
- set:对应java的HashSet
- map:对应java的HashMap
4、异常类型
- exception:对应java的Exception
5、服务类型
- service:对应服务的类
7、传输协议
- TBinaryProtocol:二进制编码格式进行数据传输
- TCompactProtocol:使用VLQ编码对数据进行压缩
- TJSONProtocol:使用json的数据编码协议进行数据传输
- TSimpleJSONProtocol:只提供json只写的协议,适用于通过脚本语言解析
- TDebugProtocol:在开发过程中帮助开发人员调试使用的,以文本的形式展示方变查看
8、传输层
- TSocket:使用阻塞式IO传输
- TFramedTransport:使用非阻塞式传输,以块的形式传输,类似于java的NIO传输
- TFileTransport:按文件形式的传输
- TMemoryTransport:使用内存IO
- TZlibTransport:使用Zlib压缩传输
9、服务端类型
- TSimpleServer:单线程,使用阻塞式IO
- TThreadPoolServer:多线程,使用阻塞式IO
- TNonblockingServer:多线程,使用非阻塞式IO
thrift一些实现的例子可以查看代码https://github.com/jjhpeopl/thriftTest.git
相关推荐
thrift特性、不支持的特性、对各个语言的支持情况、语法参考、Thrift 架构、协议、传输层、服务端类型、各种thriftServer实现的比较、Thrift对多接口服务的支持
NULL 博文链接:https://leign.iteye.com/blog/1055627
我的thrift介绍与学习中的示例程序。
Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前...
通俗简单的介绍了什么是thrift,适用于thrift或RPC扫盲。
NULL 博文链接:https://gemantic.iteye.com/blog/1199214
简要介绍了thrift框架的原理及使用方法,附带一个搭建thrift工程的例子。
中文版,介绍thrift的设计目的,设计原理以及其基本结构。
17_Protobuf使用最佳实践与Apache Thrift介绍;18_Apache Thrift应用详解与实例剖析;19_Apache Thrift原理与架构解析;20_通过Apache Thrift实现Java与Python的RPC调用;21_gRPC深入详解 ;22_gRPC实践 ;23_Gradle...
详细介绍了Apache Thrift在Ubuntu以及Windows下基于C++和Java语言的安装和运行。附有小例子,亲自测试通过。所述方法网上应该有教程,但大多零散不统一或者不完整,因此本人整理了一份,特来分享。
对于Thrift服务化的改造,主要是客户端,可以从如下几个方面进行: 1.服务端的服务注册,客户端自动发现,无需手工修改配置,这里我们使用zookeeper,但由于zookeeper本身提供的客户端使用较为复杂,因此采用curator...
翻译过后的Thrift : the missing guide,主要是一些Thrift概念的介绍和一些注意事项
1 HBase分享六、Thrift接口查询、Scan过滤器 1.1 依据行键和列族过滤 1.2 据行键开始、行键结束和列族过滤 1.3 通过行键前缀进行查询 1.4 查找在当前指定时间之前且大于等于startRowKey行键记录; 1.5 查找在当前...
17_Protobuf使用最佳实践与Apache Thrift介绍 18_Apache Thrift应用详解与实例剖析 19_Apache Thrift原理与架构解析 20_通过Apache Thrift实现Java与Python的RPC调用 21_gRPC深入详解 22_gRPC实践 23_Gradle Wrapper...
14_Protobuf完整实例详解 15_Protobuf集成Netty与多协议消息传 递 16_Protobuf多协议消息支援与工程最佳实践 17_Protobuf使用最佳实践与Apache Thrift介绍 18_Apache Thrift应用详解与实例剖析 19_Apache Thrift原理...
第17讲:Protobuf使用最佳实践与Apache Thrift介绍 第18讲:Apache Thrift应用详解与实例剖析 第19讲:Apache Thrift原理与架构解析 第20讲:通过Apache Thrift实现Java与Python的RPC调用 第21讲:gRPC深入详解 ...
介绍 Thrift是用于点对点RPC实现的轻型,独立于语言的软件堆栈。 Thrift为数据传输,数据序列化和应用程序级处理提供了干净的抽象和实现。 代码生成系统采用一种简单的定义语言作为输入,并跨编程语言生成代码,这些...
Apache Thrift程序员指南以下示例中的源代码:Apache Thrift程序员指南 本书分为三个部分:第一部分-Apache Thrift概述对Apache Thrift及其体系结构的高级介绍。 这部分的例子非常有趣。 本部分还介绍了基本的Apache...