什么是RPC框架和Apache Thrift?

我需要学习Apache Thrift的大学项目。 正如本教程所说,它是一个RPC框架,它是除了文档以外我能find的唯一一个Thrift 文档 。

有人能告诉我什么是RPC框架,这与Apache Thrift有什么关系?

一般来说, RPC框架是一组工具,它们使程序员能够在远程进程中调用一段代码,在不同的机器上,或者在同一台机器上的另一个进程中。

Apache Thrift的特殊情况下,我们讨论了一个高效的框架,并且可以跨OS平台和编程语言使用。 此外,您在传输(如套接字,pipe道等)和协议(二进制,JSON,甚至是压缩)方面还有一些灵活性,还有一些更多选项,如SSL或SASL支持。

例如 ,您可以在Linux机器上build立一个服务器,使用C ++编写,通过基于HTTP的JSON协议向世界提供一些服务。 这个服务可能被用Python编写的客户端程序调用,运行在Windows机器上。 服务器和客户端的代码都是从Thrift IDL文件生成的。 为了让它运行,你基本上只需要添加所需的程序逻辑并把所有的部分放在一起。

Apache Thrift的最佳参考依然是Apache Thrift白皮书 。 虽然在一些细节上略显落伍,但下层的概念仍然是有效的。 另一个很好的阅读是Diwaker Gupta的“失踪指南” ,最后一个来自Randy Abernethy的即将出版的书。

对于初学者,我build议先从Apache Thrift 教程套件开始 ,这些例子展示了很多核心function。 如果遇到问题,欢迎您在SO或者Thrift邮件列表上询问。