概念

http://thrift.apache.org/docs/concepts

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
 +-------------------------------------------+
  | Server                                    |
  | (single-threaded, event-driven etc)       |
  +-------------------------------------------+
  | Processor                                 |
  | (compiler generated)                      |
  +-------------------------------------------+
  | Protocol                                  |
  | (JSON, compact etc)                       |
  +-------------------------------------------+
  | Transport                                 |
  | (raw TCP, HTTP etc)                       |
  +-------------------------------------------+
Thrift是FaceBOOK在2009年开源的序列化/RPC框架,主要包括四个组件:protocol,transport, processor和server,
其中protocol定义消息序列化方式,
transport定义客户端和服务端通信方式,如http或socket等,
processor是用户实现的消息处理器,执行业务逻辑处理,
server是组装这些组件:从transport接受序列化消息,根据protocol协议反序列化,调用用户定义的消息处理器,并将消息处理器返回结果序列化,然后写回transport响应客户端。

thrift学习 随笔 第1张

 

 



  • 协议

     Thrift可以让你选择客户端与服务端之间传输通信协议的类别,在传输协议上总体上划分为文本(text)和二进制(binary)传输协议, 为节约带宽,提供传输效率,一般情况下使用二进制类型的传输协议为多数,但有时会还是会使用基于文本类型的协议,这需要根据项目/产品中的实际需求:
    1、TBinaryProtocol – 二进制编码格式进行数据传输。
    2、TCompactProtocol – 这种协议非常有效的,使用Variable-Length Quantity (VLQ) 编码对数据进行压缩。
    3、TJSONProtocol – 使用JSON的数据编码协议进行数据传输。
    4、TSimpleJSONProtocol – 这种节约只提供JSON只写的协议,适用于通过脚本语言解析
    5、TDebugProtocol – 在开发的过程中帮助开发人员调试用的,以文本的形式展现方便阅读。

  • 传输层

    1、TSocket- 使用堵塞式I/O进行传输,也是最常见的模式。
    2、TFramedTransport- 使用非阻塞方式,按块的大小,进行传输,类似于Java中的NIO。
    3、TFileTransport- 顾名思义按照文件的方式进程传输,虽然这种方式不提供Java的实现,但是实现起来非常简单。
    4、TMemoryTransport- 使用内存I/O,就好比Java中的ByteArrayOutputStream实现。

    5、TZlibTransport- 使用执行zlib压缩,不提供Java的实现。

 

通信模型

  • 阻塞服务

       TSimpleServer

       TThreadPoolServer

  • 非阻塞服务模型

      TNonblockingServer

      THsHaServer

      TThreadedSelectorServer

 

thrift学习 随笔 第2张

 

 

 

 

 

ref

https://qinzhaokun.github.io/2017/09/12/Thrift%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B/

https://www.cnblogs.com/exceptioneye/p/4945073.html

https://blog.csdn.net/houjixin/article/details/42778335

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄