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

Tapahtumaohjattujen Sagojen suunnittelu

Suunnitelkaa choreografiaan perustuvan Sagan kulku tapahtumien avulla niin, että ne käynnistävät toimintoja eri mikropalveluissa.

Oppitunti 1/412 vaihetta

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!

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 ”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

  1. Tapahtumaohjattujen Sagojen suunnittelu
  2. Tapahtumaväylät ja viestinvälittäjät
  3. Kompensaation käsittely tapahtumilla
  4. Idempotenttien tapahtumankuluttajien rakentaminen
← Takaisin: Mikropalveluiden viestintämallit (Saga, Circuit Breaker)