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

Tapahtumaväylät ja viestinvälittäjät

Hyödyntäkää viestinvälittäjiä ja tapahtumaväyliä luotettavan asynkronisen viestinnän mahdollistamiseen choreografiaan perustuvissa Sagoissa.

Oppitunti 2/411 vaihetta

Tapahtumaväylät ja viestinvälittäjät on ilmainen Mikropalveluiden viestintämallit (Saga, Circuit Breaker)-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.

Luotettavat choreography-sagat

Choreography-sagassa palvelut viestivät vaihtamalla tapahtumia. Jotta tämä toimisi luotettavasti hajautetussa järjestelmässä, tarvitsemme vankat viestintämekanismit.

Kuvitellaan, että tilaus luodaan, minkä jälkeen tarvitaan maksu ja lopuksi toimitus. Jokainen vaihe on tapahtuma, joka käynnistää seuraavan palvelun.

  • Order Service julkaisee OrderCreated-tapahtuman
  • Payment Service tilaa OrderCreated-tapahtuman ja julkaisee PaymentProcessed-tapahtuman
  • Shipping Service tilaa PaymentProcessed-tapahtuman ja julkaisee ShipmentScheduled-tapahtuman

Mikä on tapahtumaväylä?

Event Bus on suunnittelumalli, jonka avulla sovelluksen eri osat tai eri palvelut voivat viestiä lähettämällä ja vastaanottamalla tapahtumia ilman, että ne tuntevat toisiaan suoraan.

Voitte ajatella sitä keskuksena, jossa tapahtumia lähetetään kaikille. Kuka tahansa kiinnostunut osapuoli voi "kuunnella" tiettyjä tapahtumia.

Se irrottaa palvelut toisistaan: niiden ei tarvitse tietää, kuka käsittelee niiden tapahtumat, vaan ainoastaan sitä, että tapahtuma on tapahtunut.

Tapahtumaväylä käytännössä

Tarkastellaan yhden sovelluksen sisäistä tapahtumaväylää:

  • Käyttäjä napsauttaa "Save"-painiketta.
  • Käyttöliittymäkomponentti julkaisee UserSaved-tapahtuman tapahtumaväylään.
  • Lokitusmoduuli, ilmoitusmoduuli ja tietojen synkronointimoduuli voivat kaikki tilata UserSaved-tapahtuman.

Ne kaikki reagoivat tapahtumaan ilman, että käyttöliittymä tietää niistä. Tämä on yksinkertainen ja tehokas tapa hoitaa prosessin sisäinen viestintä.

Viestinvälittäjät esitellään

Vaikka tapahtumaväylä sopii erinomaisesti prosessin sisäiseen viestintään, hajautetut mikropalvelut tarvitsevat enemmän. Tässä astuvat kuvaan Message Broker -viestinvälittäjät.

Viestinvälittäjä on erillinen palvelu, kuten RabbitMQ, Kafka tai AWS SQS, joka toimii eri sovellusten tai palvelujen välisten viestien välittäjänä.

Se tarjoaa kehittyneitä ominaisuuksia, jotka ovat välttämättömiä luotettavassa verkon yli tapahtuvassa viestinnässä.

Viestinvälittäjien hyödyt sagojen kannalta

Viestinvälittäjät tarjoavat choreography-sagoille tärkeitä hyötyjä:

  • Säilyvyys: Viestit säilyvät, vaikka palvelut olisivat poissa käytöstä, mikä estää tietojen katoamisen.
  • Taattu toimitus: Varmistaa, että viestit saavuttavat tarkoitetut vastaanottajat.
  • Irrotus: Lähettäjät ja vastaanottajat eivät tunne toisiaan, mikä edistää palvelujen itsenäisyyttä.
  • Kuormantasaus: Jakaa viestit tehokkaasti kuluttajapalvelun useiden instanssien kesken.
  • Asynkronisuus: Palvelujen ei tarvitse odottaa vastauksia, mikä parantaa suorituskykyä ja reagointikykyä.

Väylä vai välittäjä: ero

Vaikka molemmat mahdollistavat tapahtumapohjaisen viestinnän, Event Bus on yleensä kevyt, muistissa toimiva mekanismi yhden sovelluksen tai prosessin sisällä.

Message Broker on vankka, ulkoinen järjestelmä, joka on suunniteltu prosessien ja palvelujen väliseen, verkon kautta tapahtuvaan viestintään. Se tarjoaa esimerkiksi viestijonot, aiheet, pysyvyyden ja monipuolisen reitityksen.

Viestinvälittäjää voi ajatella tapahtumaväylän käsitteen tehokkaana, hajautettuna toteutuksena.

Viestinvälittäjät mahdollistavat choreographyn

Viestinvälittäjät ovat choreography-sagojen selkäranka. Niiden avulla palvelut voivat:

  • Julkaista tapahtumia: Palvelu suorittaa vaiheen ja julkaisee tapahtuman tiettyyn aiheeseen (nimettyyn välittäjän kanavaan).
  • Tilata tapahtumia: Muut kyseisestä tapahtumasta kiinnostuneet palvelut tilaavat aiheen ja vastaanottavat tapahtuman käynnistääkseen seuraavan vaiheensa.

Tämä hajautettu, välittäjän kautta tapahtumien ohjaama kulku määrittää choreography-mallin.

Esimerkki: tapahtuman julkaiseminen

Tässä on yksinkertaistettu esimerkki siitä, miten OrderService voisi valmistella ja käsitteellisesti "julkaista" OrderCreated-tapahtuman viestinvälittäjän avulla.

Viestinvälittäjä huolehtii varsinaisesta lähettämisestä tilaajille.

public class OrderService {
  public static void main(String[] args) {
    String orderId = "ORD_456";
    String customer = "Alice";
    String item = "Widget";

    // Imagine this event goes to a message broker
    String eventPayload = "{ \"type\": \"OrderCreated\", \"orderId\": \"" + orderId + "\", \"customer\": \"" + customer + "\", \"item\": \"" + item + "\" }";

    System.out.println("OrderService prepares event:");
    System.out.println(eventPayload);
    System.out.println("This event would be sent to a 'order_events' topic on a message broker.");
  }
}

Esimerkki: tapahtuman tilaaminen

Seuraavaksi katsotaan, miten PaymentService voisi käsitteellisesti "tilata" ja käsitellä viestinvälittäjältä saatavan OrderCreated-tapahtuman.

Se kuuntelee order_events-aihetta.

public class PaymentService {
  public static void main(String[] args) {
    // Imagine PaymentService receives this event from a message broker
    String receivedEvent = "{ \"type\": \"OrderCreated\", \"orderId\": \"ORD_456\", \"customer\": \"Alice\", \"item\": \"Widget\" }";

    System.out.println("PaymentService received event:");
    System.out.println(receivedEvent);

    // Parse and process the event
    if (receivedEvent.contains("\"type\": \"OrderCreated\"")) {
      System.out.println("Processing payment for order: ORD_456...");
      System.out.println("Payment processed successfully!");
    } else {
      System.out.println("Unknown event type received.");
    }
  }
}

Testaa ymmärryksesi

Viestinvälittäjät ovat keskeisiä choreography-sagoille. Mitkä seuraavista ovat viestinvälittäjien tarjoamia keskeisiä hyötyjä luotettavassa asynkronisessa viestinnässä?

Kertaus: tapahtumaväylä ja viestinvälittäjät

Tässä oppitunnissa tarkastelimme, miten Event Bus ja Message Broker mahdollistavat luotettavan asynkronisen viestinnän erityisesti choreography-sagoissa.

  • Event Bus on prosessin sisäisen tapahtumaviestinnän suunnittelumalli.
  • Message Broker on ulkoinen, vankka järjestelmä, joka toteuttaa tämän mallin hajautettuja palveluja varten ja tarjoaa esimerkiksi säilyvyyden sekä taatun toimituksen.
  • Niiden avulla palvelut voivat julkaista tapahtumia ja tilata aiheita, mikä muodostaa choreography-sagojen etenemisen perustan.

Seuraavaksi tarkastelemme, miten kompensaatiota käsitellään, kun asiat menevät vikaan näissä tapahtumapohjaisissa kulkuissa!

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 ”Tapahtumaväylät ja viestinvälittäjät” ilmainen?

Kyllä – oppitunnin ”Tapahtumaväylät ja viestinvälittäjät” 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 ”Tapahtumaväylät ja viestinvälittäjät”?

Hyödyntäkää viestinvälittäjiä ja tapahtumaväyliä luotettavan asynkronisen viestinnän mahdollistamiseen choreografiaan perustuvissa Sagoissa. 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 2/4.

Kuinka kauan ”Tapahtumaväylät ja viestinvälittäjät”-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)