Was ist RPC-Framework und Apache Thrift?

99

Ich muss Apache Thrift für ein Universitätsprojekt lernen . Wie in diesem Tutorial angegeben , handelt es sich um ein RPC-Framework, und es war das einzige Dokument, das ich für Thrift finden konnte, außer deren Dokumentation .

Kann mir jemand sagen, was ein RPC-Framework ist und wie dies mit Apache Thrift zusammenhängt?

bula
quelle

Antworten:

158

Ein RPC-Framework besteht im Allgemeinen aus einer Reihe von Tools, mit denen der Programmierer einen Code in einem Remote-Prozess aufrufen kann, sei es auf einem anderen Computer oder nur einem anderen Prozess auf demselben Computer.

Im speziellen Fall von Apache Thrift sprechen wir über ein Framework, das effizient ausgelegt ist und sowohl auf Betriebssystemplattformen als auch in Programmiersprachen verfügbar ist. Darüber hinaus haben Sie eine gewisse Flexibilität in Bezug auf Transporte (wie Sockets, Pipes usw.) und Protokolle (binär, JSON, sogar komprimiert) sowie einige weitere Optionen wie SSL- oder SASL-Unterstützung.

Sie können beispielsweise einen Server auf einem in C ++ geschriebenen Linux-Computer einrichten, der der Welt über ein JSON-basiertes Protokoll über HTTP einen gewissen Service bietet. Dieser Dienst kann von einem in Python geschriebenen Client-Programm aufgerufen werden, das auf einem Windows-Computer ausgeführt wird. Der Code für Server und Client wird aus einer Thrift IDL-Datei generiert. Um es zum Laufen zu bringen, müssen Sie im Grunde nur die beabsichtigte Programmlogik hinzufügen und alle Teile zusammenfügen.

Die beste Referenz für Apache Thrift ist immer noch das Apache Thrift Whitepaper . Obwohl in einigen Details etwas veraltet, sind die zugrunde liegenden Konzepte weiterhin gültig. Eine weitere gute Lektüre ist Diwaker Guptas "Missing Guide" und nicht zuletzt das bevorstehende Buch von Randy Abernethy .

Für Anfänger würde ich empfehlen, mit der Apache Thrift- Lernsuite zu beginnen. Diese Beispiele zeigen viele der Hauptfunktionen. Wenn Sie auf Fragen stoßen, können Sie diese gerne hier auf SO oder auf den Thrift-Mailinglisten stellen.

JensG
quelle