Apache sparsommelighed

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 8. februar 2021; checks kræver 5 redigeringer .
Apache sparsommelighed
Type RPC- ramme
Udvikler Apache Software Foundation
Skrevet i C++
Operativ system Cross-platform software
Første udgave 14. april 2012 [1]
nyeste version 0.16.0 (9. februar 2022 ) ( 2022-02-09 )
Licens Apache-licens 2.0
Internet side thrift.apache.org
 Mediefiler på Wikimedia Commons

Thrift (fra  engelsk  -  "thrift", udtales som [θrift] ) er et grænsefladebeskrivelsessprog , der bruges til at definere og skabe tjenester til forskellige programmeringssprog. Det er en ramme for fjernprocedurekald (RPC). Brugt af Facebook som en skalerbar tværsproglig udviklingstjeneste. Kombinerer en pipeline med en kodegenereringsmotor for at udvikle tjenester, der fungerer mere eller mindre effektivt og nemt mellem sprog som [2] C# , C++ , Cappuccino , Cocoa , Delphi ,Erlang , Go , Haskell , Java , OCaml , Perl , PHP , Python , Ruby , Rust , Smalltalk og JavaScript [3] . Kort sagt er Thrift en binær kommunikationsprotokol . Siden april 2007 er det blevet udviklet som et open source -projekt af non-profit organisationen Apache Software Foundation .

Arkitektur

Thrift inkluderer en færdiglavet softwarepipeline, bestående af seks lag, til at arbejde med klient- og serverdelene. Det øverste niveau er den genererede Thrift-beskrivelseskode. Tjenester genererer klient- og serverkode fra den. I modsætning til indbyggede typer returneres den genererede datastruktur som et resultat i den genererede kode. Protokol- og transportlagene er en del af runtime-biblioteket . I Thrift er det muligt at vælge tjenester og ændre protokollen og transporten uden at genkompilere koden. Ud over klientsiden inkluderer Thrift en serverinfrastruktur til protokolkommunikation og transport i blocking, non-blockingog multi-threadedservere. I/O-lagrammen er implementeret forskelligt for forskellige sprog.

Understøttede protokoller

Understøttede transportører

Understøttede servere

Fordele

[fire]

Apache sparsommelighed Protokolbuffere
Udvikler Facebook, Apache Google
Understøttede sprog 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
Udgående formater Binær, JSON Binær
Simple typer bool
byte
16/32/64-bit heltal
dobbelt
streng
byte sekvens
kort<t1,t2>
liste<t>
sæt<t>
bool
32/64-bit heltal
float
dobbelt
streng
byte sekvens
gentagne egenskaber fungerer som lister
Konstanter Ja Ikke
Komposit type struktur besked
Undtagelser Ja Ikke
Dokumentation problematisk godt
Licens Apache BSD stil
Udvidelser af komposittype Ikke Ja

Oprettelse af en sparsommelighedstjeneste

Thrift er skrevet i C++, men koden kan skrives på flere sprog. For at oprette en Thrift-tjeneste skal du først skrive Thrift-filer, der beskriver den, derefter generere kode i outputsproget og angive kommandoerne for at starte serveren og derefter kalde dem i klienten. Her er et eksempel på en beskrivelsesfil:

enum PhoneType { hjem , ARBEJDE , MOBIL , ANDET } struct Phone { 1 : i32 id , 2 : strengnummer , _ 3 : Telefontype _ }

Thrift vil generere kode fra denne beskrivelsesfil, for eksempel i Java. PhoneTypevil være en simpel enum (enum)inde i POJO for Telefon-klassen.

Litteratur

  • Randy Abernethy. Programmørens guide til Apache Thrift. - Manning Publications Company, 2015. - ISBN 978-1-61729-181-4 .

Noter

  1. https://projects.apache.org/json/projects/thrift.json
  2. Apache Thrift - Sprog- og funktionsmatrix . Hentet 11. marts 2019. Arkiveret fra originalen 8. marts 2019.
  3. Apache Thrift - Javascript . thrift.apache.org. Hentet 13. oktober 2016. Arkiveret fra originalen 9. oktober 2016.
  4. Thrift vs Protocol Bufffers vs JSON Arkiveret 7. november 2015 på Wayback Machine , MirthLab LLC, 2009

Links