Thrift架构及原理
参考文章 https://my.oschina.net/wangmengjun/blog/917456 https://diwakergupta.github.io/thrift-missing-guide/thrift.pdf
Last updated
Was this helpful?
参考文章 https://my.oschina.net/wangmengjun/blog/917456 https://diwakergupta.github.io/thrift-missing-guide/thrift.pdf
Last updated
Was this helpful?
其中Transport层提供了一个简单的网络读写抽象层。这使得thrift底层的transport从系统其它部分(如:序列化/反序列化)解耦。以下是一些Transport接口提供的方法:
Protocol抽象层定义了一种将内存中数据结构映射成可传输格式的机制。换句话说,Protocol定义了datatype怎样使用底层的Transport对自己进行编解码。因此,Protocol的实现要给出编码机制并负责对数据进行序列化。
Thrift支持以下几种Protocol
TBinaryProtocol : 二进制格式.
TCompactProtocol : 压缩格式
TJSONProtocol : JSON格式
TSimpleJSONProtocol : 提供JSON只写协议, 生成的文件很容易通过脚本语言解析
等等
Processor封装了从输入数据流中读数据和向数据数据流中写数据的操作。读写数据流用Protocol对象表示。
与服务相关的processor实现由编译器产生。 Processor主要工作流程如下:
从连接中读取数据(使用输入protocol),将处理授权给handler(由用户实现),最后将结果写到连接上(使用输出protocol)。
Server实现的几个步骤如下~
(1) 创建一个transport对象
(2) 为transport对象创建输入输出protocol
(3) 基于输入输出protocol创建processor
(4) 等待连接请求并将之交给processor处理