Tapahtumaohjattujen Sagojen suunnittelu
Suunnitelkaa choreografiaan perustuvan Sagan kulku tapahtumien avulla niin, että ne käynnistävät toimintoja eri mikropalveluissa.
Tapahtumaohjattujen Sagojen suunnittelu 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.
Tapahtumaohjattu Sagan suunnittelu
Tervetuloa! Tässä oppitunnissa opitte suunnittelemaan Choreography Sagan kulun. Tämä malli auttaa hallitsemaan monimutkaisia, useiden palvelujen läpi kulkevia liiketoimintatransaktioita.
Keskitymme käyttämään tapahtumia ensisijaisena tapana, jolla palvelut viestivät ja käynnistävät toistensa toimia.
Choreography-mallin kertaus
Muistatteko Choreography Sagat? Tässä mallissa palvelut viestivät suoraan julkaisemalla tapahtumia ja tilaamalla niitä.
- Ei keskitettyä orchestraattoria: Palvelut reagoivat muiden palvelujen tapahtumiin.
- Hajautetut päätökset: Jokainen palvelu päättää seuraavasta vaiheestaan vastaanottamansa tapahtuman perusteella.
Liiketoimintaskenaariomme
Suunnitellaan Saga "Online Order Placement" -järjestelmää varten. Tämä yleinen skenaario sisältää useita vaiheita eri mikropalveluissa:
- Asiakas tekee tilauksen.
- Varastotilanne tarkistetaan ja tuotteet varataan.
- Maksu käsitellään.
- Tilaus lähetetään.
Sagan keskeisten vaiheiden tunnistaminen
"Order Placement" -sagan voi jakaa seuraaviin päävaiheisiin, joista kukin voidaan käsitellä eri palvelussa:
- Order Service: Luo tilauksen.
- Inventory Service: Varaa tuotteet.
- Payment Service: Käsittelee maksun.
- Shipping Service: Aikatauluttaa toimituksen.
Tapahtumat ohjaavat kulkua
Choreography-sagassa jokaisen vaiheen käynnistää tapahtuma. Kun yksi palvelu saa tehtävänsä valmiiksi, se julkaisee tapahtuman.
Muut kyseisestä tapahtumasta kiinnostuneet palvelut tilaavat sen ja reagoivat vastaavasti. Näin syntyy ketjureaktio.
Sagan käynnistäminen
Jokainen saga tarvitsee aloituspisteen. Meidän "Order Placement" -sagassamme prosessin käynnistää Order Service.
Kun asiakas tekee tilauksen, Order Service luo sen ja julkaisee OrderCreatedEvent-tapahtuman.
Inventory reagoi tilaukseen
Inventory Service tilaa OrderCreatedEvent-tapahtuman. Vastaanotettuaan sen palvelu yrittää varata tilaukseen kuuluvat tuotteet.
Käsittelyn jälkeen se julkaisee joko InventoryReservedEvent- tai InventoryFailedEvent-tapahtuman.
class OrderCreatedEvent {
String orderId;
String customerId;
// ... item details
}
class InventoryService {
public void handleOrderCreated(OrderCreatedEvent event) {
System.out.println("Inventory Service: Received OrderCreatedEvent for " + event.orderId);
// Logic to reserve items...
boolean success = true; // Assume success for now
if (success) {
System.out.println("Inventory Service: Items reserved. Publishing InventoryReservedEvent.");
// In a real system, publish InventoryReservedEvent
} else {
System.out.println("Inventory Service: Inventory failed. Publishing InventoryFailedEvent.");
// In a real system, publish InventoryFailedEvent
}
}
}
public class Main {
public static void main(String[] args) {
InventoryService inventory = new InventoryService();
OrderCreatedEvent newOrder = new OrderCreatedEvent();
newOrder.orderId = "ORD123";
newOrder.customerId = "CUST456";
inventory.handleOrderCreated(newOrder);
}
}Payment reagoi varastoon
Payment Service tilaa InventoryReservedEvent-tapahtuman. Tämä tarkoittaa, että maksu käsitellään vain, jos tuotteet on varattu onnistuneesti.
Se käsittelee maksun ja julkaisee sitten joko PaymentProcessedEvent- tai PaymentFailedEvent-tapahtuman.
Shipping reagoi maksuun
Lopuksi Shipping Service tilaa PaymentProcessedEvent-tapahtuman. Se aikatauluttaa toimituksen vasta, kun maksu on vahvistettu.
Sen jälkeen se julkaisee OrderShippedEvent-tapahtuman, joka viimeistelee sagan pääkulun.
Palautusten suunnittelu
Mitä tapahtuu, jos jokin vaihe epäonnistuu? Entä jos maksu epäonnistuu sen jälkeen, kun tuotteet on varattu? Choreography-sagassa käytämme kompensaatiotapahtumia.
Payment Service julkaisisi PaymentFailedEvent-tapahtuman. Inventory Service tilaisi tämän tapahtuman ja julkaisisi InventoryReleasedEvent-tapahtuman aiemman toimintansa kumoamiseksi.
Sagan kulun tarkistus
Tarkastellaan Order Placement -sagaamme. Mikä on tapahtumien oikea järjestys, jos koko prosessi onnistuu?
Kertaus: tapahtumakulkujen suunnittelu
Olemme oppineet suunnittelemaan choreography-sagan jakamalla liiketoimintatapahtuman vaiheisiin.
- Kukin vaihe julkaisee tapahtuman käynnistääkseen seuraavan vaiheen.
- Tunnistimme onnistuneen kulun aloitustapahtuman ja sitä seuraavat tapahtumat.
- Tarkastelimme myös lyhyesti, miten kompensaatiotapahtumia käytetään virheiden käsittelyyn.
Seuraavaksi tutustumme siihen, miten viestinvälittäjät mahdollistavat tämän viestinnän!
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 ”Tapahtumaohjattujen Sagojen suunnittelu” ilmainen?
Kyllä – oppitunnin ”Tapahtumaohjattujen Sagojen suunnittelu” 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 ”Tapahtumaohjattujen Sagojen suunnittelu”?
Suunnitelkaa choreografiaan perustuvan Sagan kulku tapahtumien avulla niin, että ne käynnistävät toimintoja eri mikropalveluissa. 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 ”Tapahtumaohjattujen Sagojen suunnittelu”-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
- Tapahtumaohjattujen Sagojen suunnittelu
- Tapahtumaväylät ja viestinvälittäjät
- Kompensaation käsittely tapahtumilla
- Idempotenttien tapahtumankuluttajien rakentaminen