Apache Thrift 软件框架用于可扩展的跨语言服务开发,将软件堆栈与代码生成引擎相结合,构建可在 C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、 Cocoa、JavaScript、Node.js、Smalltalk、OCaml 和 Delphi 等语言。

# 总览

首先从官网提供的 PDF 中,简单了解了大致内容。

# 结构

如下图所示,Thrift 包含客户端和服务端,客户端由用户自己实现,服务端的具体服务实现需要用户自己实现,其他部分都是 Thrift 来实现的。客户端和服务端通信时,都包含 4 层,从上到下分别是:Service stubs、User types、Protocol 和 Transports,其中前两层是用户自己定义的,Thrift 生成的,后两层是 Thrift 实现,当然,用户可以自定义具体的 Protocol 和 Transport。