Viestinnän käsitteet
Ymmärtäkää komennot, tapahtumat ja jonot.
Viestinnän käsitteet on ilmainen C# Academy-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 C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.
Miksi viestinvälitystä tarvitaan
Asynkroninen viestinvälitys mahdollistaa palveluiden viestimisen ilman suoria kutsuja toisilleen. Tuottaja lähettää viestin, ja kuluttaja käsittelee sen myöhemmin. Tämä irrottaa palvelut toisistaan, tasaa kuormapiikkejä ja pitää järjestelmän toimintakykyisenä, vaikka kuluttaja olisi hetkellisesti poissa käytöstä.
Mikä MassTransit on
MassTransit on .NET-kehys, joka toimii RabbitMQ:n ja Azure Service Busin kaltaisten viestinvälittäjien päällä. Se huolehtii sarjallistamisesta, reitityksestä, uudelleenyrityksistä ja muusta, joten voitte keskittyä viesteihin ja käsittelijöihin viestinvälittäjän teknisten yksityiskohtien sijaan.
dotnet add package MassTransitKomennot ja tapahtumat
Kaksi viestin tarkoitusta on tärkeää erottaa. Komento käskee tiettyä palvelua tekemään jotakin ("ChargePayment"). Tapahtuma ilmoittaa tapahtuneesta ("OrderPlaced") kaikille, joita se kiinnostaa. Komennolla on yksi käsittelijä, kun taas tapahtumalla voi olla useita.
Komennon mallintaminen
Komento on tavallinen viestityyppi, joka nimetään käskymuotoisesti. Lähettäkää se yhdelle kuluttajalle.
public record ChargePayment(
Guid OrderId,
decimal Amount);Tapahtuman mallintaminen
Tapahtuma nimetään imperfektissä, ja se julkaistaan kaikille kiinnostuneille tilaajille.
public record OrderPlaced(
Guid OrderId,
string CustomerEmail);Jonot
Jono säilyttää viestejä, kunnes kuluttaja käsittelee ne. Se toimii point-to-point-periaatteella: kukin viesti toimitetaan täsmälleen yhdelle kuluttajalle, mikä mahdollistaa kuormanjaon kuluttajainstanssien välillä (kilpailevat kuluttajat).
Exchanget ja topicit
RabbitMQ:n kaltaiset välittäjät reitittävät viestejä exchangejen kautta. Tuottaja julkaisee viestin exchangeen, joka jakaa sen kaikille siihen sidotuille jonoille. Näin yksi tapahtuma saavuttaa useita tilaajia.
Miten MassTransit käyttää niitä
MassTransit yhdistää viestityypit automaattisesti exchangeihin ja jonoihin. Send kohdistuu jonoon (komento), kun taas Publish kohdistuu exchangeen, jolloin jokainen tilatun kuluttajan jono saa oman kopionsa (tapahtuma).
Palveluiden irrottaminen käytännössä
Tilauspalvelu julkaisee OrderPlaced-tapahtuman ja jatkaa toimintaansa. Sähköpostipalvelu ja analytiikkapalvelu käsittelevät sitä toisistaan riippumatta. Uuden tilaajan lisääminen ei vaadi muutoksia tuottajaan.
Toimitustakuut
Viestinvälittäjät tarjoavat yleensä at-least-once-toimituksen: viesti voidaan toimittaa uudelleen virheen jälkeen. Kuluttajien on siksi oltava idempotentteja, jotta saman viestin käsittely kahdesti on turvallista.
Milloin viestinvälitystä kannattaa käyttää
Valitkaa viestinvälitys, kun työ voidaan tehdä asynkronisesti, kun palvelut on tarpeen irrottaa toisistaan tai kun haluatte tasata kuormapiikkejä. Jos tarvitsette välittömän vastauksen pyyntöön, suora API-kutsu voi silti olla yksinkertaisempi.
Pikatarkistus
Testatkaa viestinvälityksen käsitteitä.
Kertaus
Asynkroninen viestinvälitys irrottaa palvelut toisistaan viestinvälittäjän avulla. MassTransit abstrahoi RabbitMQ:n kaltaiset viestinvälittäjät. Komennot (käskymuotoisia, yksi käsittelijä) lähetetään jonoon, kun taas tapahtumat (imperfektissä, useita käsittelijöitä) julkaistaan exchangeen, joka jakaa ne tilaajille. Varautukaa at-least-once-toimitukseen ja tehkää kuluttajista idempotentteja.
Opi C# 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
- 93
- Oppitunnit
- 346
Usein kysytyt kysymykset
Onko oppitunti ”Viestinnän käsitteet” ilmainen?
Kyllä – oppitunnin ”Viestinnän käsitteet” 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 C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Viestinnän käsitteet”?
Ymmärtäkää komennot, tapahtumat ja jonot. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Viestinnän käsitteet”-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ä C# Academy-oppitunnilla?
Kyllä. Jokainen C# Academy-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
- Viestinnän käsitteet
- Viestien tuottaminen ja kuluttaminen
- Sagojen ja työnkulkujen perusteet
- Virheenkäsittely ja uudelleenyritykset