Grundlagen der Nachrichtenübermittlung
Verstehen Sie Commands, Events und Queues.
Grundlagen der Nachrichtenübermittlung ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Messaging?
Asynchrones Messaging ermöglicht die Kommunikation zwischen Diensten, ohne dass diese sich direkt aufrufen. Ein Producer legt eine Nachricht ab, und ein Consumer holt sie später ab. Dadurch werden Dienste entkoppelt, Lastspitzen geglättet und Systeme bleiben robust, wenn ein Consumer vorübergehend nicht verfügbar ist.
Was ist MassTransit?
MassTransit ist ein .NET-Framework, das auf Message Brokern wie RabbitMQ oder Azure Service Bus aufsetzt. Es übernimmt Serialisierung, Routing, Wiederholungsversuche und mehr, sodass Sie sich auf Nachrichten und Handler konzentrieren können statt auf die Infrastruktur des Brokers.
dotnet add package MassTransitCommands vs. Events
Zwei Nachrichtenabsichten sind wichtig. Ein Command weist einen bestimmten Dienst an, etwas zu tun ("ChargePayment"). Ein Event kündigt an, dass etwas geschehen ist ("OrderPlaced"), und richtet sich an alle Interessierten. Commands haben einen Handler, Events können viele haben.
Einen Command modellieren
Ein Command ist ein einfacher Nachrichtentyp mit einem imperativen Namen. Senden Sie ihn an genau einen Consumer.
public record ChargePayment(
Guid OrderId,
decimal Amount);Ein Event modellieren
Ein Event wird in der Vergangenheitsform benannt und an alle interessierten Abonnenten veröffentlicht.
public record OrderPlaced(
Guid OrderId,
string CustomerEmail);Queues
Eine Queue hält Nachrichten, bis ein Consumer sie verarbeitet. Sie arbeitet nach dem Punkt-zu-Punkt-Prinzip: Jede Nachricht wird genau einem Consumer zugestellt. So wird die Last auf mehrere Consumer-Instanzen verteilt (konkurrierende Consumer).
Exchanges und Topics
Brokers wie RabbitMQ leiten Nachrichten über Exchanges weiter. Ein Producer veröffentlicht eine Nachricht an einen Exchange, der sie an alle gebundenen Queues verteilt. So erreicht ein Event viele Abonnenten.
So verwendet MassTransit sie
MassTransit ordnet Ihre Nachrichtentypen automatisch Exchanges und Queues zu. Send richtet sich an eine Queue (Command); Publish richtet sich an einen Exchange, sodass die Queue jedes abonnierten Consumers eine Kopie erhält (Event).
Entkopplung in der Praxis
Der Bestelldienst veröffentlicht OrderPlaced und fährt fort. Unabhängig davon verarbeiten ein E-Mail-Dienst und ein Analysedienst das Event jeweils als Consumer. Einen neuen Abonnenten hinzuzufügen, erfordert keine Änderung am Producer.
Zustellgarantien
Brokers bieten typischerweise eine Zustellung at-least-once: Nach einem Fehler kann eine Nachricht erneut zugestellt werden. Consumer sollten daher idempotent sein, damit die zweimalige Verarbeitung derselben Nachricht sicher ist.
Wann Sie Messaging einsetzen sollten
Nutzen Sie Messaging, wenn eine Aufgabe asynchron ausgeführt werden kann, wenn Sie Dienste entkoppeln müssen oder wenn Sie Lastspitzen abfangen möchten. Für eine sofortige Antwort im Request-Response-Verfahren kann ein direkter API-Aufruf dennoch einfacher sein.
Kurzer Test
Testen Sie die Konzepte des Messaging.
Zusammenfassung
Asynchrones Messaging entkoppelt Dienste über einen Broker. MassTransit abstrahiert Brokers wie RabbitMQ. Commands (imperativ, ein Handler) werden an eine Queue gesendet; Events (Vergangenheitsform, viele Handler) werden an einen Exchange veröffentlicht, der sie an Abonnenten verteilt. Rechnen Sie mit einer Zustellung mindestens einmal, und machen Sie Consumer daher idempotent.
Häufig gestellte Fragen
Ist die Lektion „Grundlagen der Nachrichtenübermittlung“ kostenlos?
Ja — der vollständige Text von „Grundlagen der Nachrichtenübermittlung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Grundlagen der Nachrichtenübermittlung“?
Verstehen Sie Commands, Events und Queues. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C# Academy zu starten?
Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Grundlagen der Nachrichtenübermittlung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?
Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen der Nachrichtenübermittlung
- Nachrichten produzieren und konsumieren
- Sagas und Workflows
- Fehlerbehandlung und Wiederholungen