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

Two-Phase Commit -protokolla

Ymmärrätte hajautettujen transaktioiden two-phase commit -protokollan (2PC), sen takuut ja blokkaavat heikkoudet sekä sen, miksi microservices-järjestelmissä suositaan sen sijaan sagas-mallia.

Oppitunti 4/413 vaihetta

Two-Phase Commit -protokolla on ilmainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

Atomisten hajautettujen kirjoitusten tarve

Kun yksi liiketoimintatoiminto ulottuu kahteen tietokantaan, haluatte kaiken tai ei mitään: molemmat vahvistetaan tai molemmat perutaan. Yksi paikallinen transaktio ei voi ulottua erillisiin järjestelmiin, joten tarvitsemme koordinointiprotokollan.

Kaksivaiheinen vahvistus

Two-phase commit (2PC) on klassinen protokolla, jossa koordinaattori ohjaa useat osallistujat yksimieliseen päätökseen: vahvistetaan tai keskeytetään.

Vaihe 1: valmistelu

Koordinaattori kysyy jokaiselta osallistujalta: voitteko vahvistaa? Kukin suorittaa työn, lukitsee resurssit, kirjoittaa lokiinsa ja vastaa kyllä (valmisteltu) tai ei.

Vaihe 2: vahvistus tai keskeytys

Jos kaikki vastasivat kyllä, koordinaattori käskee kaikkia vahvistamaan. Jos joku vastasi ei, se käskee kaikkia keskeyttämään. Päätös on lopullinen ja tallennettu.

Takuu

2PC takaa osallistujien välisen atomisuuden: tilannetta, jossa yksi on vahvistanut ja toinen keskeyttänyt, ei synny, kunhan protokolla suoritetaan loppuun.

Estävä ongelma

Tässä on kohtalokas puute: jos koordinaattori kaatuu vaiheen 1 jälkeen, osallistujat jäävät pitämään lukkoja hallussaan eivätkä pysty tekemään päätöstä. Ne estyvät määrittelemättömäksi ajaksi, kunnes koordinaattori palautuu.

Lukot heikentävät suorituskykyä

Resurssit pysyvät lukittuina koko protokollan edestakaisen viestinnän ajan. Palveluiden ja verkkojen yli tämä vähentää samanaikaisuutta ja saatavuutta huomattavasti, mikä ei sovellu suuren mittakaavan mikropalveluille.

CAP-jännite

2PC suosii johdonmukaisuutta saatavuuden kustannuksella. Verkon osioituminen vahvistuksen aikana voi jäädyttää koko transaktion, mikä rikkoo sitä saatavuutta, jota hajautetuissa järjestelmissä yleensä painotetaan.

XA-transaktiot

XA-standardi toteuttaa 2PC:n resurssienhallintajärjestelmien (tietokannat, JMS-välittäjät) välillä. Se toimii, mutta kytkee palvelut tiukasti yhteen ja perii kaikki 2PC:n estävät ongelmat.

Miksi mikropalvelut välttävät 2PC:tä

Mikropalveluissa arvostetaan löyhää kytkentää ja saatavuutta. Yleensä niissä hylätään 2PC ja suositaan saga-mallia: paikallisten transaktioiden sarjaa, jossa käytetään korjaavia toimintoja ja hyväksytään eventual consistency hajautettujen lukkojen sijaan.

Milloin 2PC on edelleen järkevä

2PC ei ole aina väärä ratkaisu. Yhden luottamusrajan sisällä sen käyttö voi olla turvallista vähäliikenteisissä, lyhyissä transaktioissa luotettavan infrastruktuurin päällä, esimerkiksi yhden tietokannan ja yhden viestivälittäjän kanssa.

Pikatarkistus

Testatkaa, miten hyvin ymmärrätte 2PC:n.

Kertaus

Opitte 2PC:n perusteet:

  • 2PC koordinoi osallistujien välisen kaiken tai ei mitään -vahvistuksen
  • Vaihe 1 valmistelee (lukitsee ja äänestää); vaihe 2 vahvistaa tai keskeyttää
  • Se takaa atomisuuden, mutta estyy koordinaattorin vikaantuessa
  • Lukot ja CAP- kompromissi heikentävät saatavuutta suuressa mittakaavassa
  • Mikropalveluissa suositaan sagoja; 2PC sopii pieniin ja luotettaviin yhden rajapinnan tapauksiin
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 ”Two-Phase Commit -protokolla” ilmainen?

Kyllä – oppitunnin ”Two-Phase Commit -protokolla” 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 ”Two-Phase Commit -protokolla”?

Ymmärrätte hajautettujen transaktioiden two-phase commit -protokollan (2PC), sen takuut ja blokkaavat heikkoudet sekä sen, miksi microservices-järjestelmissä suositaan sen sijaan sagas-mallia. 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 4/4.

Kuinka kauan ”Two-Phase Commit -protokolla”-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)