C# Academy · leksjon

Meldingskonsepter

Forstå kommandoer, hendelser og køer.

Leksjon 1 av 413 trinn

Meldingskonsepter er en gratis leksjon i C# Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C# Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C# Academy inneholder totalt 4 leksjoner.

Hvorfor meldingsutveksling

Asynkron meldingsutveksling lar tjenester kommunisere uten å kalle hverandre direkte. En produsent legger en melding i kø, og en konsument henter den senere. Dette frikobler tjenestene, jevner ut belastningstopper og gjør systemet robust når en konsument er midlertidig nede.

Hva er MassTransit

MassTransit er et .NET-rammeverk som ligger oppå meldingsmeglere som RabbitMQ eller Azure Service Bus. Det håndterer serialisering, ruting, nye forsøk og mer, slik at du kan konsentrere deg om meldinger og behandlere i stedet for meglerinfrastruktur.

dotnet add package MassTransit

Kommandoer kontra hendelser

To meldingsintensjoner er viktige. En kommando ber en bestemt tjeneste om å gjøre noe ("ChargePayment"). En hendelse kunngjør at noe har skjedd ("OrderPlaced") til alle som er interessert. Kommandoer har én behandler, mens hendelser kan ha mange.

Modellere en kommando

En kommando er en enkel meldingstype med et imperativt navn. Send den til én konsument.

public record ChargePayment(
    Guid OrderId,
    decimal Amount);

Modellere en hendelse

En hendelse navngis i fortidsform og publiseres til alle interesserte abonnenter.

public record OrderPlaced(
    Guid OrderId,
    string CustomerEmail);

Køer

En kø oppbevarer meldinger til en konsument behandler dem. Den fungerer punkt til punkt: Hver melding leveres til nøyaktig én konsument, noe som muliggjør belastningsfordeling mellom konsumentinstanser (konkurrerende konsumenter).

Exchanges og topics

Brokere som RabbitMQ ruter gjennom exchanges. En produsent publiserer til en exchange, som videresender meldingen til alle tilknyttede køer. Slik kan én hendelse nå mange abonnenter.

Slik bruker MassTransit dem

MassTransit knytter meldingstypene dine automatisk til exchanges og køer. Send retter seg mot en kø (kommando), mens Publish retter seg mot en exchange, slik at køen til hver abonnert konsument mottar en kopi (hendelse).

Frikobling i praksis

Ordretjenesten publiserer OrderPlaced og går videre. Uavhengig av dette behandler en e-posttjeneste og en analysetjeneste hver sin kopi. Hvis du legger til en ny abonnent, trenger produsenten ingen endring.

Leveringsgarantier

Brokere tilbyr vanligvis levering minst én gang: En melding kan bli levert på nytt etter en feil. Konsumenter bør derfor være idempotente, slik at det er trygt å behandle samme melding to ganger.

Når bør meldingsutveksling brukes

Bruk meldingsutveksling når arbeidet kan utføres asynkront, når du trenger å frikoble tjenester eller for å absorbere belastningstopper. For et umiddelbart svar på en forespørsel kan et direkte API-kall fortsatt være enklere.

Hurtigsjekk

Test konsepter innen meldingsutveksling.

Oppsummering

Asynkron meldingsutveksling frikobler tjenester via en broker. MassTransit abstraherer brokere som RabbitMQ. Kommandoer (imperative, én behandler) blir sendt til en kø, mens hendelser (fortidsform, mange behandlere) blir publisert til en exchange som videresender dem til abonnenter. Forvent levering minst én gang, og gjør derfor konsumentene idempotente.

Gratis å komme i gang

Lær deg C# med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
93
Leksjoner
346

Ofte stilte spørsmål

Er leksjonen «Meldingskonsepter» gratis?

Ja – hele teksten i «Meldingskonsepter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C# Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C# Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Meldingskonsepter»?

Forstå kommandoer, hendelser og køer. Du øver på C# Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med C# Academy?

Ingen tidligere erfaring er nødvendig. C# Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Meldingskonsepter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne C# Academy-leksjonen?

Ja. Alle C# Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Meldingskonsepter
  2. Produsere og konsumere meldinger
  3. Sagaer og arbeidsflyter
  4. Feilhåndtering og nye forsøk
← Tilbake til C# Academy