NingG +

Apache Thrift:服务开发框架

1. 背景

公司内部通过 Thrift 进行 rpc 调用,准备详细学习一下:

  1. Thrift 是什么?
  2. Thrift 能做什么?
  3. Thrift 怎么用?
  4. Thrift 使用时,需要搭建环境吗?怎么搭建?
  5. Thrift 的内部原理是什么?

2. Thrift 是什么

2.1. 概要

Apache Thrift,是一个软件框架,包含有代码生成引擎,能够生成多种语言的代码,主要作用:构建远程调用的服务(构建 RPC)。

2.2. 消息传输形式

服务调用的方式很多,简单汇总一下:

  1. 基于 SOAP 消息格式的 Web Service 服务
  2. 基于 JSON 消息格式的 RESTful 服务

具体消息的传输形式:

  1. XML 形式:SOAP 消息格式就是 XML 形式
  2. JSON 形式:相对于 XML 形式,JSON 形式体积小、效率高
  3. 二进制形式:相对 XML 和 JSON 形式,效率更高

Thrift 框架,使用二进制形式传输消息,同时支持多语言环境。

2.3. 如何支持多语言环境

无论现有软件是使用哪种语言编写的,例如 Java、C++、PHP、Pythoh、Ruby等,使用 Thrift 发布的服务都能与现有软件无缝对接。

Thrift 框架,是如何支持多语言环境的?

  1. 定义服务:使用接口描述语言(IDL)定义并描述服务
  2. 生成代码:通过代码生成引擎,生成不同语言对应的代码

上面 Thrift 通过 IDL 定义服务之后,需要在服务器端编写代码:描述服务器端的具体实现细节(实现 Iface 或 AsyncIface 接口)。

3. Thrift 能做什么

Thrift 用于构建远程调用的服务,并且支持跨语言的实现。

另外:

MTthrift 使用过程的注意事项:

4. 参考资料

同类文章:

微信搜索: 公众号 ningg ,即可联系我

Top