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.
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 julkaiseePaymentProcessed-tapahtuman - Shipping Service tilaa
PaymentProcessed-tapahtuman ja julkaiseeShipmentScheduled-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!
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
- Tapahtumaohjattujen Sagojen suunnittelu
- Tapahtumaväylät ja viestinvälittäjät
- Kompensaation käsittely tapahtumilla
- Idempotenttien tapahtumankuluttajien rakentaminen