Thrift介绍

来了一个新公司,这家公司不再使用以前的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值