Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) · Lektion

Vad är Saga-mönstret?

Lär Er definitionen av och syftet med Saga-mönstret för hantering av affärstransaktioner som omfattar flera tjänster.

Lektion 1 av 411 steg

Vad är Saga-mönstret? är en gratis lektion i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) innehåller totalt 4 lektioner.

Varför distribuerade transaktioner?

I en mikrotjänstarkitektur behöver en enskild affärsåtgärd ofta interagera med flera oberoende tjänster och deras databaser.

Traditionella databastran­saktioner, så kallade ACID-transaktioner, är utmärkta för att säkerställa konsistens i en enskild databas. De sträcker sig däremot inte enkelt över olika tjänster eller databaser.

Atomicitetens utmaning

Föreställ Er ett nätköp: en order skapas, betalningen behandlas och lagersaldot uppdateras. Vad händer om betalningen lyckas men lageruppdateringen misslyckas?

Utan en mekanism för att samordna dessa steg kan systemet hamna i ett inkonsistent tillstånd, där kunden exempelvis har betalat för en vara som fortfarande finns i lager men inte har tilldelats kundens order.

Möt Saga-mönstret

Saga-mönstret är ett sätt att hantera affärstransaktioner som sträcker sig över flera tjänster och samtidigt säkerställa datakonsistens mellan dem.

En Saga är en sekvens av lokala transaktioner. Varje lokal transaktion uppdaterar data inom en enda tjänst och publicerar en händelse som utlöser nästa steg i Sagan.

Förstå lokala transaktioner

En lokal transaktion är en standardiserad, atomisk databastran­saktion som sker helt inom en enda mikrotjänst.

  • Den startas och bekräftas, eller återställs, inom gränserna för tjänstens databas.
  • Den säkerställer att data inom den specifika tjänsten förblir konsistent.

Sagan samordnar dessa lokala transaktioner för att uppnå ett större distribuerat affärsmål.

Kompensationens roll

Vad händer om en av de lokala transaktionerna i en Saga misslyckas efter att tidigare steg redan har genomförts?

Saga-mönstret hanterar detta genom att köra kompensationstransaktioner. En kompensationstransaktion är utformad för att upphäva effekterna av en tidigare slutförd lokal transaktion.

Saga jämfört med traditionella ACID-transaktioner

Sagas skiljer sig från traditionella ACID-transaktioner (Atomicity, Consistency, Isolation, Durability):

  • ACID: Allt eller inget, omedelbar konsekvens och stark isolering.
  • Saga: Uppnår eventual consistency mellan tjänster. Den byter omedelbar atomicitet mot tillgänglighet och skalbarhet i distribuerade system.

Sagas tillhandahåller transaktionsintegritet över tid, även om transaktionerna inte är atomära direkt.

När Sagas är särskilt användbara

Sagas är särskilt användbara när:

  • Ni behöver upprätthålla datakonsistens mellan flera oberoende mikrotjänster.
  • Ni inte kan använda en distribuerad tvåfascommit, vilket ofta är fallet i mikrotjänster.
  • Era affärsprocesser är komplexa och sträcker sig över flera systemgränser.

De hjälper till att hantera långvariga, distribuerade affärsprocesser på ett smidigt sätt.

Exempel: Flödet för en onlinebeställning

Vi tar ett vanligt e-handelsscenario som exempel: att lägga en onlinebeställning.

Det kan involvera flera tjänster:

  • Order Service
  • Payment Service
  • Inventory Service
  • Shipping Service

En Saga kan samordna stegen för att säkerställa att hela processen slutförs korrekt eller återställs på rätt sätt.

Beställnings-Sagans steg på hög nivå

Så här kan en order-Saga fungera:

  1. Order Service: Skapar ordern (lokal transaktion).
  2. Payment Service: Behandlar betalningen (lokal transaktion).
  3. Inventory Service: Minskar lagersaldot för artikeln (lokal transaktion).
  4. Shipping Service: Schemalägger leveransen (lokal transaktion).

Om exempelvis Inventory Service misslyckas med att minska lagersaldot utlöser Sagan kompensation för Payment Service och Order Service.

Snabbtest: Grunderna i Saga

Testa er förståelse av de centrala begreppen i Saga-mönstret.

Sammanfattning: Saga-mönstret

Ni har lärt er att Saga-mönstret hjälper till att hantera distribuerade affärstransaktioner över flera mikrotjänster.

  • Det består av en sekvens av lokala transaktioner, där varje transaktion är atomär inom sin egen tjänst.
  • Det använder kompensationstransaktioner för att upphäva tidigare steg om ett senare steg misslyckas.
  • Sagas tillhandahåller eventual consistency, vilket gör dem lämpliga för komplexa, distribuerade processer där omedelbara ACID-egenskaper inte är möjliga.

Härnäst utforskar vi olika sätt att implementera Sagas: Choreography och Orchestration.

Gratis att börja

Lär dig Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Vad är Saga-mönstret?” gratis?

Ja – hela texten till ”Vad är Saga-mönstret?” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker), kan Ni uppgradera till CoddyKit PRO. Kursen i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Vad är Saga-mönstret?”?

Lär Er definitionen av och syftet med Saga-mönstret för hantering av affärstransaktioner som omfattar flera tjänster. Ni övar på Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker)?

Du behöver inga förkunskaper. Utbildningen i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Vad är Saga-mönstret?”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker)-lektionen?

Ja. Varje Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad är Saga-mönstret?
  2. Choreography Saga förklarad
  3. Orchestration Saga förklarad
  4. Välj mellan choreography och orchestration
← Tillbaka till Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker)