Vad är Apache Thrift?

1 min läsning

Kort svar

Apache Thrift är ett ramverk med öppen källkod, ursprungligen utvecklat på Facebook, som möjliggör effektiv kommunikation mellan tjänster skrivna i olika programmeringsspråk. Utvecklaren definierar gränssnitt i en IDL-fil och kompilatorn genererar kod för RPC-kommunikation i valfritt språk.

Apache Thrift är ett ramverk med öppen källkod som utvecklades på Facebook och senare överläts till Apache Software Foundation. Det löser ett konkret problem: hur tjänster skrivna i olika programmeringsspråk ska kommunicera effektivt med varandra över nätverk.

Utvecklaren definierar tjänster och datastrukturer i en IDL-fil (Interface Definition Language). Thrift-kompilatorn genererar sedan kod i valfritt målspråk, bland annat C++, Java, Python, Go, Ruby och JavaScript. Den genererade koden innehåller allt som behövs för RPC-kommunikation: transport, protokoll, klient- och serverklasser. Både transportlager och protokoll är utbytbara, vilket gör arkitekturen flexibel.

Thrifts binära protokoll är kompakt och snabbt jämfört med textbaserade alternativ som JSON eller XML. Det gör ramverket särskilt lämpligt för mikrotjänstarkitekturer med hög genomströmning och låg latens, där tjänster behöver anropa varandra tusentals gånger per sekund.

kodgenereringskalbara tjänsterRPCApache Thriftprogrammering

Vanliga frågor

Vad används Apache Thrift till?
Thrift används för att låta tjänster skrivna i olika programmeringsspråk kommunicera effektivt med varandra över nätverk genom RPC (Remote Procedure Call).
Vilka programmeringsspråk stöder Thrift?
Thrift stöder bland annat C++, Java, Python, Go, Ruby och JavaScript. Kompilatorn genererar kod i valfritt målspråk utifrån en gemensam IDL-definition.
Hur skiljer sig Thrift från REST-API:er?
Thrifts binära protokoll är kompaktare och snabbare än textbaserade alternativ som JSON. Det passar bättre för intern kommunikation mellan mikrotjänster där prestanda är viktig.
Vem utvecklade Apache Thrift?
Thrift utvecklades ursprungligen på Facebook och överläts sedan till Apache Software Foundation som ett projekt med öppen källkod.

Var detta till hjälp?