美文网首页
Thrift简介及使用

Thrift简介及使用

作者: 第七感_12d9 | 来源:发表于2017-11-05 23:14 被阅读0次

一、简介

1.Thrift是一种典型的CS(客户端/服务端)结构,客户端与服务端可以使用不同的语言开发。既然客户端和服务端能使用不同的语言开发,那么一定就要有一种之间语言来管理客户端和服务端的语言,这种语言就是IDL(Interface Description Language).

2.Thrift不支持无符号类型,因为很多语言不存在无符号类型,比如Java

3.集合中的元素可以是除了service之外的任何类型,包括exception

thrift容器类型:

(1)list:一系列由T类型的数据组成的有序列表,元素可以重复

(2)set:一系列由T类型的数据组成的无序列表,元素不可重复

(3)map:一个字典结构,key为K类型,value为V类型,相当于Java中的HashMap

4.thrift定义服务相当于Java中创建Interface一样,关键字service

typedef定义别名

const定义常量

namespace相当于Java的package,namespace 语言 路径

include引入包

#和//开头为注释,/**/包裹的也是注释

required必选,optional可选

5.thrift传输协议

(1)TBinaryProtocal:二进制格式

(2)TCompactProtocal:压缩格式,比TBinaryProtocal效率更高

(3)TJSONProtocal:JSON格式

(4)TSimpleJSONProtocal:提供JSON只写协议,生成的文件很容易通过脚本语言解析,极少使用,缺少元数据

(5)TDebugProtocal:使用易懂的可读的文本格式,以便于debug

6.thrift传输方式

(1)TSocket:阻塞式socket,效率低,使用少

(2)TFramedTransport:以frame为单位进行压缩,非阻塞式服务中使用

(3)TFileTransport:以文件形式进行传输

(4)TMemoryTransport:将内存用于I/O,java实现时内部实际使用了简单的ByteArrayOutputStream

(5)TZlibTransport:使用zlib进行压缩,与其他传输方式联合使用,当前无java实现

7.thrift支持的服务模型:

(1)TSimpleServer:简单的单线程服务模型,常用于测试

(2)TThreadPoolServer:多线程服务模型,使用标准的阻塞式IO,来一个请求起一个线程

(3)TNonblockingServer:多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)

(4)THsHaServer:继承自TNonblockingServer,THsHa引入了线程池去处理,其模型把读写任务放到线程池去处理;Half-sync/Half-async的处理模式,Half-async是在处理IO事件上(accept/read/write IO),Half-sync用于handler对rpc的同步处理(需使用TFramedTransport数据传输方式)

二、使用

相关文章

  • Thrift简介及使用

    一、简介 1.Thrift是一种典型的CS(客户端/服务端)结构,客户端与服务端可以使用不同的语言开发。既然客户端...

  • thrift 简介

    thrift 基本概念、数据类型thrift 简介一 thrift 基本类概述、序列化协议thrift 简介二 t...

  • Thrift入门

    原文链接:thrift入门 转载请注明出处~ Thrift简介 什么是thrift 简单来说,是Facebook公...

  • Thrift简介

    thrift最初由Facebook研发,主要用于各个服务之间的RPC通信,支持跨语言,常用的语言 ActionSc...

  • Thrift学习

    Thrift源码剖析 Thrift源码分析及一个完整的例子 CSDN Thrift源码分析 Thrift二进制序列...

  • thrift事件交互

    一、thrift 1 thrift简介Thrift是一个RPC框架,由facebook开发。它支持可扩展且跨语言的...

  • thrift 简介三

    thrift 使用之前我们看了一些thrift的概念,现在我们通过hello world来学习thrift的使用。...

  • Thrift小试牛刀——在Windows中通过Thrift实现简

    成功的秘诀,在永不改变既定的目的。 —— 卢梭 Thrift简介 The Apache Thrift softwa...

  • TLV格式 及 VARINT数值压缩存储方法

    使用Thrift格式进行数据序列化反序列化,thrift的存储格式,主要使用thrift的TCompactProt...

  • Go实践:基于Thrift框架的Go-RPC简单示例

    Thrift架构简介 Thrift自顶向下可分为四层 Server(single-threaded, event-...

网友评论

      本文标题:Thrift简介及使用

      本文链接:https://www.haomeiwen.com/subject/jvfkmxtx.html