Apache Thrift

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. február 8-án felülvizsgált verziótól ; az ellenőrzések 5 szerkesztést igényelnek .
Apache Thrift
Típusú RPC keretrendszer
Fejlesztő Apache Software Foundation
Beírva C++
Operációs rendszer Többplatformos szoftver
Első kiadás 2012. április 14. [1]
legújabb verzió 0.16.0 (2022. február 9. ) ( 2022-02-09 )
Engedély Apache licenc 2.0
Weboldal thrift.apache.org
 Médiafájlok a Wikimedia Commons oldalon

A takarékosság (  angolul  - " thrift  ", ejtsd: [θrift] ) egy interfészleíró nyelv , amely szolgáltatások meghatározására és létrehozására szolgál különböző programozási nyelvekhez. Ez a távoli eljáráshívás (RPC) keretrendszere. A Facebook skálázható, többnyelvű fejlesztői szolgáltatásként használja . Egy csővezetéket kombinál egy kódgeneráló motorral, hogy olyan szolgáltatásokat fejlesszen ki, amelyek többé-kevésbé hatékonyan és egyszerűen működnek olyan nyelvek között, mint [2] C# , C++ , Cappuccino , Cocoa , Delphi , Erlang , Go , Haskell , Java , OCaml , Perl , PHP , Python , Ruby , Rust , Smalltalk és JavaScript [3] . Egyszerűen fogalmazva, a Thrift egy bináris kommunikációs protokoll . 2007 áprilisa óta az Apache Software Foundation nonprofit szervezet nyílt forráskódú projektjeként fejlesztik .

Építészet

A Thrift egy kész szoftverfolyamatot tartalmaz, amely hat rétegből áll, a kliens és a szerver részekkel való munkavégzéshez. A legfelső szint a generált Thrift leíró kód. A szolgáltatások kliens- és szerverkódot generálnak belőle. A beépített típusoktól eltérően a generált adatstruktúra visszaadásra kerül a generált kódban. A protokoll és a szállítási rétegek a futásidejű könyvtár részét képezik . A Thriftben lehetőség van a kód újrafordítása nélkül szolgáltatásokat kiválasztani, protokollt és szállítást módosítani . Az ügyféloldalon kívül a Thrift tartalmaz egy szerver-infrastruktúrát a protokoll-kommunikációhoz és -átvitelhez -ban blocking, non-blockingvalamint multi-threadedszerverekben. Az I/O réteg keretrendszere különböző nyelveken eltérően kerül megvalósításra.

Támogatott protokollok

Támogatott szállítók

Támogatott szerverek

Előnyök

[négy]

Apache Thrift Protokoll pufferek
Fejlesztő Facebook, Apache Google
Támogatott nyelvek C++, C#, Dart, D, Go, Haskell, Java, JavaScript, Python, PHP, XSD, Ruby, Perl, Objective C,

Erlang, Ruby, Smalltalk, OCaml, Haskell

C++, C#, Dart, Go, Java, JavaScript, Python, PHP, Objective C, Ruby
Kimenő formátumok Bináris, JSON Bináris
Egyszerű típusok bool
bájt 16/32/64
bites egész számok
dupla
karakterlánc
bájt sorozatleképezés
<t1,t2>
list<t>
set<t>
bool 32/64
bites egész számok
float
dupla
karakterlánc
bájt szekvencia
ismétlődő tulajdonságok úgy működnek, mint a listák
Állandók Igen Nem
Kompozit típus struct üzenet
Kivételek Igen Nem
Dokumentáció problematikus
Engedély Apache BSD stílus
Kompozit típusú kiterjesztések Nem Igen

Takarékos szolgáltatás létrehozása

A Thrift C++ nyelven íródott, de a kód több nyelven is írható. A Thrift szolgáltatás létrehozásához először meg kell írnia azt leíró Thrift fájlokat, majd kódot kell generálnia a kimeneti nyelven, és meg kell adnia a parancsokat a szerver indításához, majd meghívnia azokat a kliensben. Itt van egy példa leíró fájl:

enum PhoneType { otthon , MUNKA , MOBIL , EGYÉB } struct Telefon { 1 : i32 azonosító , 2 : karakterlánc száma , 3 : Telefontípus _ }

A Thrift kódot generál ebből a leíró fájlból, például Java nyelven. PhoneTypeegy egyszerű enum lesz a POJO(enum) -n belül a Phone osztály számára.

Irodalom

  • Randy Abernethy. A programozói útmutató az Apache takarékossághoz. - Manning Publications Company, 2015. - ISBN 978-1-61729-181-4 .

Jegyzetek

  1. https://projects.apache.org/json/projects/thrift.json
  2. Apache Thrift – Nyelvi és szolgáltatási mátrix . Letöltve: 2019. március 11. Az eredetiből archiválva : 2019. március 8..
  3. Apache Thrift - Javascript . thrift.apache.org. Letöltve: 2016. október 13. Az eredetiből archiválva : 2016. október 9..
  4. Thrift vs Protocol Bufffers vs JSON Archiválva : 2015. november 7., a Wayback Machine , MirthLab LLC, 2009

Linkek