Communicatiepatronen voor microservices (Saga, Circuit Breaker) · Les

ACID- versus BASE-principes

Vergelijk de ACID-eigenschappen van traditionele databases met de BASE-eigenschappen die vaak in gedistribueerde systemen voorkomen.

Les 1 van 412 stappen

ACID- versus BASE-principes is een gratis Communicatiepatronen voor microservices (Saga, Circuit Breaker)-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Communicatiepatronen voor microservices (Saga, Circuit Breaker). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Communicatiepatronen voor microservices (Saga, Circuit Breaker) bevat in totaal 4 lessen.

Waarom gegevensconsistentie belangrijk is

Stel u een bankoverschrijving voor. U maakt €100 over. Wordt het bedrag daadwerkelijk van uw rekening afgeschreven en op die van de ontvanger bijgeschreven? Gegevensconsistentie zorgt ervoor dat alle onderdelen van uw systeem het eens zijn over de toestand van de gegevens.

In microservices, waar gegevens over veel services zijn verspreid, wordt consistentie behouden een aanzienlijke uitdaging.

ACID: traditionele bescherming van databases

Traditionele relationele databases vertrouwen al tientallen jaren op ACID-eigenschappen om betrouwbare transacties te garanderen. ACID is een acroniem voor:

  • Atomiciteit
  • Consistentie
  • Isolatie
  • Duurzaamheid

Deze eigenschappen zorgen ervoor dat databasetransacties betrouwbaar worden verwerkt, wat essentieel is voor gevoelige bewerkingen.

Alles of niets: atomiciteit en consistentie

  • Atomiciteit (A): Een transactie is een ondeelbare werkeenheid. De transactie wordt volledig uitgevoerd (vastgelegd) of mislukt volledig (teruggedraaid). Gedeeltelijke voltooiing bestaat niet.
  • Consistentie (C): Een transactie brengt de database van de ene geldige toestand naar een andere. De transactie moet voldoen aan alle vooraf gedefinieerde regels, beperkingen en triggers.

Denk aan een geldoverschrijving: zowel de afschrijving als de bijschrijving slaagt, of geen van beide, zodat de regels voor het saldo behouden blijven.

Geïsoleerd en permanent: isolatie en duurzaamheid

  • Isolatie (I): Gelijktijdige transacties worden uitgevoerd zonder elkaar te beïnvloeden. Het is alsof elke transactie alleen draait, zelfs wanneer er veel tegelijk plaatsvinden.
  • Duurzaamheid (D): Zodra een transactie is vastgelegd, zijn de wijzigingen permanent en blijven ze behouden na latere systeemstoringen, zoals stroomuitval.

Uw bankoverschrijving verdwijnt niet meer nadat deze is bevestigd, zelfs niet als de server van de bank uitvalt.

Sterke punten en beperkingen van ACID

ACID-eigenschappen bieden sterke garanties voor gegevensintegriteit en betrouwbaarheid, wat essentieel is voor gevoelige bewerkingen zoals financiële transacties.

Strikte ACID-consistentie bereiken in meerdere onafhankelijke microservices binnen een gedistribueerd systeem is echter bijzonder moeilijk en gaat vaak gepaard met aanzienlijke afwegingen tussen prestaties en beschikbaarheid. Zo ontstonden andere modellen.

BASE: een andere filosofie

In gedistribueerde systemen betekent voorrang geven aan hoge beschikbaarheid en partitietolerantie vaak dat u strikte consistentie versoepelt. Hier komen de BASE-eigenschappen van pas. BASE is een acroniem voor:

  • Basically Available (in principe beschikbaar)
  • Soft State (zachte toestand)
  • Eventual consistency (uiteindelijke consistentie)

BASE biedt een andere aanpak en houdt rekening met de realiteit van gedistribueerde omgevingen.

Altijd reageren: in principe beschikbaar

Basically Available (BA): Het systeem garandeert beschikbaarheid voor lees- en schrijfactiviteiten. Zelfs als sommige delen van het systeem uitvallen, blijven de overige delen werken en reageren ze op aanvragen.

Dit betekent dat gebruikers altijd toegang hebben tot de service, hoewel de gegevens die ze zien niet overal de allernieuwste versie hoeven te zijn.

Het veranderlijke karakter van gegevens: zachte toestand en uiteindelijke consistentie

  • Soft State (S): De toestand van het systeem kan in de loop van de tijd veranderen, zelfs zonder externe invoer. Gegevens hoeven niet op elk moment in alle replica's consistent te zijn.
  • Eventual Consistency (E): Als er geen nieuwe updates voor een bepaald gegeven plaatsvinden, retourneren alle toegangen tot dat gegeven uiteindelijk de laatst bijgewerkte waarde.

Gegevens worden uiteindelijk consistent, maar daar zit een vertraging in. Denk aan likes op sociale media: ze verschijnen mogelijk niet overal meteen, maar worden uiteindelijk wel gesynchroniseerd.

BASE: schaalbaarheid en beschikbaarheid

BASE-principes geven voorrang aan beschikbaarheid en partitietolerantie boven directe consistentie. Daardoor zijn systemen goed schaalbaar en bestand tegen netwerkpartities en uitval van knooppunten.

De afweging is dat u een periode van inconsistentie accepteert, waarin verschillende delen van het systeem mogelijk net verschillende versies van de gegevens zien.

ACID versus BASE: belangrijkste verschillen

  • ACID: richt zich op sterke consistentie, betrouwbaarheid en gegevensintegriteit. Ideaal voor databases op één knooppunt en transacties die direct correcte, strikt consistente gegevens vereisen.
  • BASE: geeft voorrang aan beschikbaarheid en partitietolerantie. Accepteert uiteindelijke consistentie. Ideaal voor zeer schaalbare, gedistribueerde systemen waarin enigszins verouderde gegevens acceptabel zijn.

De keuze hangt af van de specifieke vereisten van uw applicatie.

Korte controle: ACID of BASE?

Welke van de volgende uitspraken beschrijven de kenmerken van BASE-eigenschappen in gedistribueerde systemen correct?

Samenvatting: ACID versus BASE

We hebben twee fundamentele benaderingen voor gegevensconsistentie onderzocht:

  • ACID: atomiciteit, consistentie, isolatie en duurzaamheid. Garandeert sterke consistentie, wat cruciaal is voor traditionele databases en kritieke transacties.
  • BASE: in principe beschikbaar, zachte toestand en uiteindelijke consistentie. Geeft voorrang aan beschikbaarheid en schaalbaarheid en staat tijdelijke inconsistenties toe, wat gebruikelijk is in gedistribueerde microservices.

Als u deze principes begrijpt, kunt u het juiste model voor gegevensconsistentie van uw systeem kiezen.

Gratis beginnen

Leer Communicatiepatronen voor microservices (Saga, Circuit Breaker) met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “ACID- versus BASE-principes” gratis?

Ja — de volledige tekst van “ACID- versus BASE-principes” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Communicatiepatronen voor microservices (Saga, Circuit Breaker) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Communicatiepatronen voor microservices (Saga, Circuit Breaker) bevat in totaal 4 lessen.

Wat leer ik in “ACID- versus BASE-principes”?

Vergelijk de ACID-eigenschappen van traditionele databases met de BASE-eigenschappen die vaak in gedistribueerde systemen voorkomen. Je oefent met Communicatiepatronen voor microservices (Saga, Circuit Breaker) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Communicatiepatronen voor microservices (Saga, Circuit Breaker) te beginnen?

Ervaring vooraf is niet nodig. Communicatiepatronen voor microservices (Saga, Circuit Breaker) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “ACID- versus BASE-principes”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Communicatiepatronen voor microservices (Saga, Circuit Breaker)?

Ja. Elke les over Communicatiepatronen voor microservices (Saga, Circuit Breaker) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. ACID- versus BASE-principes
  2. Uiteindelijke consistentie begrijpen
  3. Transactiebeheer in microservices
  4. Het two-phase-commitprotocol
← Terug naar Communicatiepatronen voor microservices (Saga, Circuit Breaker)