Protokollen for tofaset commit
Forstå two-phase commit (2PC) for distribuerte transaksjoner, garantiene og de blokkerende svakhetene, og hvorfor mikrotjenester i stedet foretrekker sagaer.
Protokollen for tofaset commit er en gratis leksjon i Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) inneholder totalt 4 leksjoner.
Behovet for atomiske distribuerte skrivinger
Når én forretningshandling omfatter to databaser, ønsker du alt eller ingenting: begge gjennomfører, eller begge ruller tilbake. Én lokal transaksjon kan ikke omfatte separate systemer, så vi trenger en koordineringsprotokoll.
Tofaseforpliktelse
Two-phase commit (2PC) er en klassisk protokoll der en koordinator leder flere deltakere frem til en enstemmig avgjørelse: gjennomfør eller avbryt.
Fase 1: Forbered
Koordinatoren spør hver deltaker: kan du gjennomføre? Hver deltaker utfører arbeidet, låser ressursene, skriver til loggen sin og svarer ja (forberedt) eller nei.
Fase 2: Gjennomfør eller avbryt
Hvis alle svarte ja, ber koordinatoren alle om å gjennomføre. Hvis noen svarte nei, ber den alle om å avbryte. Avgjørelsen er endelig og registrert.
Garantien
2PC gir atomicitet på tvers av deltakerne: Det finnes ingen tilstand der én har gjennomført og en annen har avbrutt, så lenge protokollen fullføres.
Blokkeringsproblemet
Her er den alvorlige svakheten: Hvis koordinatoren krasjer etter fase 1, blir deltakerne sittende fast og holde låser, uten å kunne avgjøre hva som skal skje. De blokkeres på ubestemt tid til koordinatoren er tilbake.
Låser reduserer gjennomstrømningen
Ressursene forblir låst under hele protokollens rundtur. På tvers av tjenester og nettverk reduserer dette samtidigheten og tilgjengeligheten kraftig, noe som er uakseptabelt for mikrotjenester i stor skala.
CAP-spenningen
2PC prioriterer konsistens fremfor tilgjengelighet. En nettverkspartisjon under gjennomføringen kan fryse hele transaksjonen og bryte med tilgjengeligheten som distribuerte systemer vanligvis prioriterer.
XA-transaksjoner
XA-standarden implementerer 2PC på tvers av ressursadministratorer (databaser, JMS-meglere). Den fungerer, men kobler tjenestene tett sammen og arver alle blokkeringsproblemene fra 2PC.
Hvorfor mikrotjenester unngår 2PC
Mikrotjenester setter løs kobling og tilgjengelighet høyt. De avviser derfor vanligvis 2PC til fordel for sagamønsteret: en sekvens med lokale transaksjoner og kompenserende handlinger, der man aksepterer eventuell konsistens i stedet for distribuerte låser.
Når 2PC fortsatt kan være riktig
2PC er ikke alltid feil. Innenfor én tillitsgrense kan transaksjoner med lavt volum og kort varighet, over pålitelig infrastruktur (for eksempel én database og én meldingsmegler), bruke det på en trygg måte.
Kort kontroll
Test forståelsen din av 2PC.
Oppsummering
Du har lært om 2PC:
- 2PC koordinerer en gjennomføring med alt eller ingenting på tvers av deltakerne
- Fase 1 forbereder (låser og stemmer); fase 2 gjennomfører eller avbryter
- Det garanterer atomicitet, men blokkeres hvis koordinatoren svikter
- Låser og CAP-avveiingen svekker tilgjengeligheten i stor skala
- Mikrotjenester foretrekker sagaer; 2PC passer for små, pålitelige tilfeller innenfor én grense
Lær deg Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Protokollen for tofaset commit» gratis?
Ja – hele teksten i «Protokollen for tofaset commit» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker)-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) inneholder totalt 4 leksjoner.
Hva lærer jeg i «Protokollen for tofaset commit»?
Forstå two-phase commit (2PC) for distribuerte transaksjoner, garantiene og de blokkerende svakhetene, og hvorfor mikrotjenester i stedet foretrekker sagaer. Du øver på Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker)?
Ingen tidligere erfaring er nødvendig. Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Protokollen for tofaset commit»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker)-leksjonen?
Ja. Alle Kommunikasjonsmønstre for mikrotjenester (Saga, Circuit Breaker)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- ACID- kontra BASE-prinsipper
- Forstå eventual consistency
- Transaksjonshåndtering i mikrotjenester
- Protokollen for tofaset commit