Mikropalveluiden viestintämallit (Saga, Circuit Breaker) · Oppitunti

ACID- ja BASE-periaatteet

Vertailkaa perinteisten tietokantojen ACID-ominaisuuksia hajautetuissa järjestelmissä usein käytettyihin BASE-ominaisuuksiin.

Oppitunti 1/412 vaihetta

ACID- ja BASE-periaatteet on ilmainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssilla on yhteensä 4 oppituntia.

Miksi tietojen yhdenmukaisuudella on merkitystä

Kuvitelkaa pankkisiirtoa. Lähetätte 100 dollaria. Poistuuko summa todella tililtänne ja saapuuko se vastaanottajalle? Tietojen yhdenmukaisuus varmistaa, että järjestelmän kaikki osat ovat samaa mieltä tietojen tilasta.

Mikropalveluissa, joissa tiedot ovat jakautuneet moniin palveluihin, yhdenmukaisuuden ylläpitäminen on merkittävä haaste.

ACID: perinteisen tietokannan suoja

Perinteiset relaatiotietokannat ovat vuosikymmenten ajan perustuneet ACID-ominaisuuksiin luotettavien tapahtumien takaamiseksi. ACID on lyhenne seuraavista ominaisuuksista:

  • Atomicity
  • Consistency
  • Isolation
  • Durability

Nämä ominaisuudet varmistavat, että tietokantatapahtumat käsitellään luotettavasti, mikä on olennaista arkaluonteisissa toiminnoissa.

Kaikki tai ei mitään: atomisuus ja yhdenmukaisuus

  • Atomicity (A): Tapahtuma on jakamaton työyksikkö. Se joko suoritetaan kokonaan (commits) tai epäonnistuu kokonaan (rolls back). Osittaista suorittamista ei ole.
  • Consistency (C): Tapahtuma siirtää tietokannan yhdestä kelvollisesta tilasta toiseen. Sen on noudatettava kaikkia ennalta määritettyjä sääntöjä, rajoitteita ja triggereitä.

Ajatelkaa rahansiirtoa: joko sekä veloitus että hyvitys onnistuvat tai kumpikaan ei onnistu, jolloin saldosäännöt säilyvät.

Eristetty ja pysyvä: eristys ja kestävyys

  • Isolation (I): Samanaikaiset tapahtumat suoritetaan häiritsemättä toisiaan. On kuin jokainen tapahtuma suoritettaisiin yksin, vaikka niitä tapahtuisi useita yhtä aikaa.
  • Durability (D): Kun tapahtuma on vahvistettu, sen muutokset ovat pysyviä ja säilyvät myöhemmistä järjestelmävioista, kuten sähkökatkoista, huolimatta.

Kun pankkisiirtonne on vahvistettu, se ei katoa, vaikka pankin palvelin kaatuisi.

ACIDin vahvuudet ja rajoitukset

ACID-ominaisuudet tarjoavat vahvat takuut tietojen eheydelle ja luotettavuudelle, jotka ovat olennaisia esimerkiksi rahansiirtojen kaltaisissa arkaluonteisissa toiminnoissa.

Tiukan ACID-yhdenmukaisuuden saavuttaminen useiden itsenäisten mikropalvelujen välillä hajautetussa järjestelmässä on kuitenkin erittäin vaikeaa, ja se aiheuttaa usein merkittäviä kompromisseja suorituskyvyn ja saatavuuden välillä. Tämä johti muiden mallien syntyyn.

BASE tulee mukaan: erilainen lähestymistapa

Hajautetuissa järjestelmissä korkean saatavuuden ja osioiden sietokyvyn asettaminen etusijalle tarkoittaa usein tiukan yhdenmukaisuuden lieventämistä. Tässä BASE-ominaisuudet tulevat mukaan. BASE on lyhenne seuraavista:

  • Basically Available
  • Soft State
  • Eventual consistency

BASE tarjoaa erilaisen lähestymistavan ja ottaa hajautettujen ympäristöjen realiteetit huomioon.

Aina vastaamassa: Basically Available

Basically Available (BA): Järjestelmä takaa luku- ja kirjoitustoimintojen saatavuuden. Vaikka jotkin järjestelmän osat vikaantuisivat, jäljelle jäävät osat jatkavat toimintaansa ja vastaavat pyyntöihin.

Tämä tarkoittaa, että käyttäjät voivat aina käyttää palvelua, vaikka heidän näkemänsä tiedot eivät olisi kaikkien järjestelmän osien aivan uusinta versiota.

Tietojen muuttuva luonne: Soft State ja Eventual Consistency

  • Soft State (S): Järjestelmän tila voi muuttua ajan myötä myös ilman ulkoista syötettä. Tiedot eivät välttämättä ole täysin yhdenmukaisia kaikissa replikoissa tiettynä hetkenä.
  • Eventual Consistency (E): Jos tiettyyn tietokohteeseen ei tehdä uusia päivityksiä, kaikki kyseiseen kohteeseen kohdistuvat haut palauttavat lopulta viimeksi päivitetyn arvon.

Tiedot muuttuvat lopulta yhdenmukaisiksi, mutta siihen kuluu aikaa. Ajatelkaa sosiaalisen median tykkäyksiä: ne eivät ehkä näy heti kaikkialla, mutta synkronoituvat lopulta.

BASE: skaalautuvuus ja saatavuus

BASE-periaatteet asettavat saatavuuden ja osioiden sietokyvyn välittömän yhdenmukaisuuden edelle. Tämän ansiosta järjestelmät ovat hyvin skaalautuvia ja kestävät verkkoyhteyksien osioitumista sekä solmujen vikaantumista.

Kompromissina hyväksytään ajanjakso, jonka aikana tiedot eivät ole yhdenmukaisia ja järjestelmän eri osat voivat nähdä hieman eri versiot tiedoista.

ACID ja BASE: keskeiset erot

  • ACID: Painottaa vahvaa yhdenmukaisuutta, luotettavuutta ja tietojen eheyttä. Sopii erityisesti yhden solmun tietokantoihin ja tapahtumiin, jotka edellyttävät välitöntä ja ehdotonta tietojen oikeellisuutta.
  • BASE: Asettaa saatavuuden ja osioiden sietokyvyn etusijalle. Hyväksyy lopullisen yhdenmukaisuuden. Sopii erittäin skaalautuviin hajautettuihin järjestelmiin, joissa tietojen hetkellinen vanhentuneisuus on hyväksyttävää.

Valinta riippuu sovelluksen erityisvaatimuksista.

Pikatarkistus: ACID vai BASE?

Mitkä seuraavista väitteistä kuvaavat oikein BASE-ominaisuuksien piirteitä hajautetuissa järjestelmissä?

Kertaus: ACID ja BASE

Tutustuimme kahteen perustavanlaatuiseen lähestymistapaan tietojen yhdenmukaisuuteen:

  • ACID: Atomicity, Consistency, Isolation, Durability. Takaa vahvan yhdenmukaisuuden, joka on olennaista perinteisissä tietokannoissa ja kriittisissä tapahtumissa.
  • BASE: Basically Available, Soft State, Eventual Consistency. Asettaa saatavuuden ja skaalautuvuuden etusijalle ja sallii tilapäiset epäyhtenäisyydet, joita esiintyy usein hajautetuissa mikropalveluissa.

Näiden periaatteiden ymmärtäminen auttaa valitsemaan järjestelmällenne sopivan tietojen yhdenmukaisuusmallin.

Aloita maksutta

Opi Mikropalveluiden viestintämallit (Saga, Circuit Breaker) tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”ACID- ja BASE-periaatteet” ilmainen?

Kyllä – oppitunnin ”ACID- ja BASE-periaatteet” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssin, päivitä CoddyKit PROhon. Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”ACID- ja BASE-periaatteet”?

Vertailkaa perinteisten tietokantojen ACID-ominaisuuksia hajautetuissa järjestelmissä usein käytettyihin BASE-ominaisuuksiin. Harjoittelet Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”ACID- ja BASE-periaatteet”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunnilla?

Kyllä. Jokainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. ACID- ja BASE-periaatteet
  2. Lopullisen yhdenmukaisuuden ymmärtäminen
  3. Tapahtumien hallinta mikropalveluissa
  4. Two-Phase Commit -protokolla
← Takaisin: Mikropalveluiden viestintämallit (Saga, Circuit Breaker)