Co to jest framework RPC i Apache Thrift?


100

Muszę się nauczyć Apache Thrift do projektu uniwersyteckiego. Jak mówi ten samouczek , jest to framework RPC i był to jedyny dokument, jaki mogłem znaleźć dla Thrift poza ich dokumentacją .

Czy ktoś może mi powiedzieć, co to jest framework RPC i jaki ma to związek z Apache Thrift?

Odpowiedzi:


158

Ramy RPC w ogóle to zestaw narzędzi, które umożliwiają programiście zadzwonić kawałek kodu w zdalnym procesie, czy to na innym komputerze lub po prostu innego procesu na tej samej maszynie.

W konkretnym przypadku Apache Thrift mówimy o frameworku zaprojektowanym tak, aby był wydajny i dostępny zarówno na platformach operacyjnych, jak i językach programowania. Ponadto masz pewną elastyczność w zakresie transportów (takich jak gniazda, potoki itp.) I protokołów (binarnych, JSON, a nawet skompresowanych), a także kilka dodatkowych opcji, takich jak obsługa SSL lub SASL.

Na przykład możesz skonfigurować serwer na maszynie z systemem Linux, napisany w C ++, który oferuje usługi dla świata za pośrednictwem protokołu opartego na JSON przez HTTP. Ta usługa może być wywołana przez program kliencki napisany w Pythonie, działający na komputerze z systemem Windows. Kod dla serwera i klienta jest generowany z pliku Thrift IDL. Aby go uruchomić, wystarczy dodać tylko zamierzoną logikę programu i złożyć wszystkie elementy razem.

Jedynym najlepszym odniesieniem do Apache Thrift jest nadal raport Apache Thrift Whitepaper . Chociaż nieco przestarzałe w niektórych szczegółach, podstawowe koncepcje są nadal aktualne. Kolejną dobrą lekturą jest „Missing Guide” Diwakera Gupty , a także nadchodząca książka Randy'ego Abernethy'ego .

Początkującym polecam zacząć od zestawu samouczków Apache Thrift , te przykłady pokazują wiele podstawowych funkcji. Jeśli napotkasz pytania, możesz je zadać tutaj na SO lub na listach mailingowych Thrift.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.