目录
1.thrift简介
thrift是一款轻量级的跨语言RPC框架,其最初由Facebook开发并开源,后来上升至apach顶级项目,MTthrift就是基于thrift开发而来
2.thrift特性
thrift主要有以下特性:
-
接口描述语言:在thrift中,所有接口及相关参数都需要通过接口描述语言(IDL)在.idl文件中描述,该idl文件可以被生成器转化为不同语言,从而实现跨语言且具有强可读性,且可以十分清晰地建立接口文档
-
多语言支持:可支持C++、java、python、php、C#等十几种语言
-
异步调用:thrift函数可以被异步调用,调用函数的客户端不会阻塞等待,直到函数返回数据后,客户端才会阻塞获取
-
异常:thrift函数执行出现错误后可抛出一个标准或者自定义异常
3.thrift架构
上图是thrift官方给出的自己的架构图,非常清晰,thrift由四层组成。四层之间松耦合,每一层都可以选择不同的实现方式。
-
transport(传输层):传输层对网络io进行了一次简单的抽象,该层的存在使得thrift的其他层可以与底层传输解耦,如上图所示,传输层支持原生tcp、http等传输协