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

Protokollet Two-Phase Commit

Förstå two-phase commit (2PC) för distribuerade transaktioner, dess garantier och blockerande svagheter samt varför mikrotjänster i stället föredrar sagor.

Lektion 4 av 413 steg

Protokollet Two-Phase Commit är en gratis lektion i Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker) på CoddyKit. Detta är lektion 4 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.

Behovet av atomära distribuerade skrivningar

När en affärsåtgärd omfattar två databaser vill ni att allt ska lyckas eller misslyckas: båda bekräftar eller båda återställer. En enda lokal transaktion kan inte omfatta separata system, så vi behöver ett samordningsprotokoll.

Tvåfasbekräftelse

Tvåfasbekräftelse (2PC) är ett klassiskt protokoll där en samordnare leder flera deltagare till ett enhälligt beslut: bekräfta eller avbryt.

Fas 1: Förbered

Samordnaren frågar varje deltagare: kan ni bekräfta? Var och en utför arbetet, låser resurserna, skriver till sin logg och svarar ja (förberedd) eller nej.

Fas 2: Bekräfta eller avbryt

Om alla svarade ja säger samordnaren åt alla att bekräfta. Om någon svarade nej säger den åt alla att avbryta. Beslutet är slutgiltigt och registrerat.

Garantin

2PC tillhandahåller atomicitet mellan deltagarna: det finns inget tillstånd där en har bekräftat och en annan har avbrutit, så länge protokollet slutförs.

Blockeringsproblemet

Här är den allvarliga bristen: om samordnaren kraschar efter fas 1 sitter deltagarna fast och håller lås, utan möjlighet att fatta beslut. De blockeras på obestämd tid tills samordnaren återhämtar sig.

Lås minskar genomströmningen

Resurserna förblir låsta under hela protokollets tur och retur. Mellan tjänster och nätverk minskar detta kraftigt samtidigheten och tillgängligheten, vilket är oacceptabelt för mikrotjänster i stor skala.

CAP-konflikten

2PC prioriterar konsekvens framför tillgänglighet. En nätverkspartition under bekräftelsen kan frysa hela transaktionen och därmed bryta mot den tillgänglighet som distribuerade system vanligtvis prioriterar.

XA-transaktioner

XA-standarden implementerar 2PC mellan resurshanterare (databaser, JMS-mäklare). Den fungerar, men kopplar tjänster tätt samman och ärver alla 2PC:s blockeringsproblem.

Varför mikrotjänster undviker 2PC

Mikrotjänster värdesätter lös koppling och tillgänglighet. De avvisar vanligtvis 2PC till förmån för saga-mönstret: en sekvens av lokala transaktioner med kompenserande åtgärder, där man accepterar så småningom uppnådd konsekvens i stället för distribuerade lås.

När 2PC fortfarande är lämpligt

2PC är inte alltid fel. Inom en enda förtroendegräns kan transaktioner med låg volym och kort varaktighet över tillförlitlig infrastruktur (t.ex. en databas och en meddelandemäklare) använda det på ett säkert sätt.

Snabbtest

Testa er förståelse av 2PC.

Sammanfattning

Ni har lärt er 2PC:

  • 2PC samordnar en bekräftelse där allt lyckas eller allt misslyckas mellan deltagarna
  • Fas 1 förbereder (låser och röstar); fas 2 bekräftar eller avbryter
  • Det garanterar atomicitet men blockerar vid fel hos samordnaren
  • Lås och CAP-avvägningen försämrar tillgängligheten i stor skala
  • Mikrotjänster föredrar sagor; 2PC passar små och tillförlitliga fall inom en enda gräns
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 ”Protokollet Two-Phase Commit” gratis?

Ja – hela texten till ”Protokollet Two-Phase Commit” 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 ”Protokollet Two-Phase Commit”?

Förstå two-phase commit (2PC) för distribuerade transaktioner, dess garantier och blockerande svagheter samt varför mikrotjänster i stället föredrar sagor. 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 4 av 4.

Hur lång tid tar lektionen ”Protokollet Two-Phase Commit”?

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. ACID- jämfört med BASE-principer
  2. Förstå eventual consistency
  3. Transaktionshantering i mikrotjänster
  4. Protokollet Two-Phase Commit
← Tillbaka till Kommunikationsmönster för mikrotjänster (Saga, Circuit Breaker)