Thrft

thrift 概念

thrift 架构

Thrift 的架构图如下

Transport 层位于最底部,用户传输字节数据。

Transport 层提供的接口如下:

Transport 层可以由多个 TTransport 类组合起来,每个 TTransport 提供不同的功能。处于 TTransport 组合层次最下方,和设备(网络,磁盘,内存)直接打交道的 TTransport 类称为 Endpoint transports。例如 TSocket,它使用 Socket API 在 TCP/IP 网络上传输数据。

TFramedTransport 有两个作用:

  1. 分帧,它在每个消息的头部加了四字节的长度,让接受者能够准确地得知消息的大小,并申请合适的 buffer
  2. 缓存。当 flush 方法调用的时候,缓存的数据才会写入下一层 Transport

当不需要分帧,仅需要缓存的时候,可以使用 TBufferedTransport。某些语言在 Endpoint Transport 中內建了缓存机制,就没有提供 TBufferedTransport 类。

参考链接

2022年11月15日 / 12:40