Orchestration Saga selitettynä
Tutustukaa orkestrointiin perustuvaan lähestymistapaan, jossa erillinen palvelu koordinoi hajautetun tapahtuman vaiheita.
Orchestration Saga selitettynä on ilmainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.
Orchestration Sagan esittely
Tervetuloa tutustumaan Orchestration Sagaan! Hajautetussa järjestelmässä liiketoimintatransaktioon täytyy joskus osallistua useita palveluja.
Orchestration Saga on malli, jossa keskitetty palvelu, jota kutsutaan orchestraattoriksi, ohjaa koko transaktion kulkua.
Orchestraattorin rooli
Ajattele orchestraattoria hajautetun transaktion projektipäällikkönä. Se tuntee kaikki vaiheet ja koordinoi niitä.
- Se lähettää komentoja osallistuville palveluille.
- Se odottaa palveluilta vastauksia eli tapahtumia.
- Se päättää seuraavasta vaiheesta vastausten perusteella.
Näin se toimii: yksinkertainen kulku
Toisin kuin Choreography Sagassa, jossa palvelut reagoivat toistensa tapahtumiin, tässä orchestraattori ohjaa toimintaa:
- Orchestraattori lähettää komennon palvelulle A.
- Palvelu A suorittaa tehtävänsä ja lähettää valmistumistapahtuman takaisin orchestraattorille.
- Orchestraattori vastaanottaa tapahtuman ja lähettää komennon palvelulle B.
- Tämä jatkuu, kunnes transaktio on valmis.
Esimerkki: verkkotilausprosessi
Käytetään esimerkkinä verkkotilausta. Tilauksen yhteydessä voidaan joutua:
- Luomaan tilaus Order Servicessä.
- Varaamaan tuotteet Inventory Servicessä.
- Käsittelemään maksu Payment Servicessä.
- Käynnistämään toimitus Shipping Servicessä.
Orchestraattori hallitsisi tätä vaiheittaista prosessia.
Orchestraattorin tilanhallinta
Orchestraattorin on seurattava Sagan nykyistä tilaa ja kontekstia. Sen on siis tallennettava esimerkiksi seuraavat tiedot:
- Mitkä vaiheet on suoritettu?
- Mitä tietoja aiemmat vaiheet palauttivat?
- Mikä on nykyinen tila (esimerkiksi
PAYMENT_PENDINGtaiINVENTORY_RESERVED)?
Tämä tila on ratkaisevan tärkeä seuraavan toiminnon päättämisessä ja virhetilanteiden käsittelyssä.
Komennot ja tapahtumat
Orchestraattori viestii kahden pääasiallisen viestityypin avulla:
- Komennot: Orchestraattorilta palvelulle lähetettäviä viestejä, jotka kertovat palvelulle, mitä sen tulee tehdä (esimerkiksi
ReserveInventory). - Tapahtumat: Palvelulta orchestraattorille lähetettäviä viestejä, jotka ilmoittavat lopputuloksen (esimerkiksi
InventoryReservedtaiPaymentFailed).
Tämä selkeä erottelu auttaa säilyttämään hallinnan.
Virheiden ja kompensaation käsittely
Mitä tapahtuu, jos jokin vaihe epäonnistuu? Orchestraattori vastaa kompensaatiosta.
Jos Payment Service epäonnistuu, orchestraattori havaitsee tapahtuman PaymentFailed. Tämän jälkeen se tietää lähettää aiemmille palveluille kompensaatiokomennot, kuten komennon ReleaseInventory Inventory Servicelle ja komennon CancelOrder Order Servicelle.
Esittely: orchestraattorin kulku
Tarkastellaan yksinkertaistettua Java-esimerkkiä. Tämä ei ole kokonainen mikropalvelu, mutta se näyttää, miten orchestraattorin logiikka voisi edetä simuloitujen palvelutulosten perusteella.
Huomaa, kuinka se seuraa arvoa sagaState ja käynnistää kompensaation, jos maksu epäonnistuu.
public class OrderSagaOrchestrator {
public static void main(String[] args) {
System.out.println("Saga Orchestrator Started: Order 123");
String sagaState = "ORDER_INITIATED";
System.out.println("Orchestrator: Sending 'CREATE_ORDER' command.");
// Simulate Order Service success
sagaState = "ORDER_CREATED";
System.out.println("Orchestrator: Received 'ORDER_CREATED' event.");
if (sagaState.equals("ORDER_CREATED")) {
System.out.println("Orchestrator: Sending 'RESERVE_INVENTORY' command.");
// Simulate Inventory Service success
sagaState = "INVENTORY_RESERVED";
System.out.println("Orchestrator: Received 'INVENTORY_RESERVED' event.");
}
if (sagaState.equals("INVENTORY_RESERVED")) {
System.out.println("Orchestrator: Sending 'PROCESS_PAYMENT' command.");
// Simulate Payment Service *failure*
System.out.println("Orchestrator: Received 'PAYMENT_FAILED' event.");
sagaState = "PAYMENT_FAILED";
}
if (sagaState.equals("PAYMENT_FAILED")) {
System.out.println("Orchestrator: Initiating compensation!");
System.out.println("Orchestrator: Sending 'CANCEL_ORDER' command.");
System.out.println("Orchestrator: Sending 'RELEASE_INVENTORY' command.");
sagaState = "SAGA_COMPENSATED";
System.out.println("Orchestrator: Saga completed with compensation.");
} else {
System.out.println("Orchestrator: Sending 'CONFIRM_ORDER' command.");
System.out.println("Orchestrator: Sending 'SHIP_ORDER' command.");
sagaState = "SAGA_COMPLETED_SUCCESSFULLY";
System.out.println("Orchestrator: Saga completed successfully.");
}
}
}Orchestration-mallin edut
Orchestration Sagat tarjoavat selkeitä etuja:
- Keskitetty hallinta: Kokonaiskulku on helpompi ymmärtää.
- Yksinkertaisemmat osallistujapalvelut: Palvelujen ei tarvitse tuntea koko Sagaa, vaan ne noudattavat orchestraattorin komentoja.
- Helpompi virheenkorjaus: Orchestraattorin tila helpottaa ongelmien jäljittämistä.
- Eksplisiittinen kompensaatio: Kompensaatiologiikka on määritelty selkeästi orchestraattorissa.
Testaa ymmärryksesi
Mitkä seuraavista väitteistä kuvaavat oikein Orchestration Sagan keskeisiä ominaisuuksia?
Kertaus: Orchestration Saga
Olette oppineet Orchestration Saga -mallista!
- Se käyttää keskitettyä orchestraattoripalvelua hajautetun transaktion hallintaan.
- Orchestraattori lähettää palveluille komentoja ja vastaanottaa niiltä vastauksina tapahtumia.
- Se ylläpitää Sagan tilaa tietääkseen, missä kohdassa transaktiota ollaan.
- Se käsittelee kompensaation eksplisiittisesti lähettämällä peruutuskomentoja, jos jokin vaihe epäonnistuu.
Tämä malli tarjoaa selkeän hallinnan ja yksinkertaistaa osallistuvien palvelujen toimintaa.
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 ”Orchestration Saga selitettynä” ilmainen?
Kyllä – oppitunnin ”Orchestration Saga selitettynä” 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 ”Orchestration Saga selitettynä”?
Tutustukaa orkestrointiin perustuvaan lähestymistapaan, jossa erillinen palvelu koordinoi hajautetun tapahtuman vaiheita. 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 3/4.
Kuinka kauan ”Orchestration Saga selitettynä”-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
- Mikä on Saga-malli
- Choreography Saga selitettynä
- Orchestration Saga selitettynä
- Choreographyn ja orchestrationin välillä valitseminen