Publisher-Subscriber-Muster 101

Dieser Blog ist Teil der Reihe, in der wir 101 Konzepte von Ground Zero für ein Publikum diskutieren, das über begrenzte Grundkenntnisse verfügt. Dieser Artikel gehört zur Serie für Fortgeschrittene, da es darum geht, die Grundlagen der Messaging-Designprinzipien zu verstehen, hauptsächlich den Anwendungsfall der Publisher-Subscriber-basierten Architektur, die in der asynchronen Kommunikation verwendet wird.

Einige der früheren Blogs in der 101-Serie lauten wie folgt:

API 101
Asynchrone Kommunikation 101
Datenbanken 101 Datenbankdesign 101

Cloud-native Messaging-Lösungen

Was ist Pub-Sub?

Im Falle einer verteilten Architektur ist das Publisher-Subscriber- Messaging-Muster zum Entkoppeln der ereigniserzeugenden Quelle von der ereignisempfangenden Quelle und zum Entsperren der End-2-End-Systeme, die in großem Umfang ausgeführt werden, konzipiert. Der Absender, der auch als Herausgeber bezeichnet wird, überträgt die Nachrichten als Ereignisse in einem vordefinierten Nachrichtenformat an einen Middle-Layer-Broker ( Kafka, EventHub, Service Bus usw. ), von dem einzelne/mehrere Abonnenten abhängig von der gewählten Abonnementrichtlinie abhören können.

Das Pub-Sub-Modell unterstützt sowohl Unicast- als auch Broadcast -Anwendungsfälle im Gegensatz zu einem Message Queue-Muster , das nur Unicast -basierte Anwendungsfälle unterstützt.

Allgemeine Begriffe

  • Publisher – Clients, die die Nachricht generieren und sie in die Messaging-Infrastruktur einreihen.
  • Abonnent – ​​Clients, die die Nachricht empfangen und sie in der Messaging-Infrastruktur aus der Warteschlange entfernen.
  • Message Broker – Die mittlere Schicht, die Anfragen zum Veröffentlichen und Lesen von Nachrichten von verschiedenen Clients verarbeitet. Es hält Daten innerhalb eines Clusters in Form von Themen über Replikate und Partitionen hinweg repliziert.
  • Thema – Eindeutige logische Kategorien innerhalb des Brokers, der Nachrichten/Ereignisse in Bezug auf eine bestimmte Anwendung/einen Geschäftsanwendungsfall bereitstellt.
  • Partition – Themen können weiter in logische Einheiten unterteilt werden, die als Partitionen bezeichnet werden, um eine parallele Verarbeitung von Nachrichten zu ermöglichen. Jede Partition enthält eindeutige Datensätze, die durch Offsets identifiziert werden.
  • QOS – Eine Vereinbarung zwischen dem Herausgeber und dem Abonnenten, die angibt, wie oft eine tatsächliche Nachricht zugestellt werden soll – mindestens einmal, höchstens einmal, genau einmal.
  • Einfaches Pub-Sub-Nachrichtenmuster

Das Publisher-Subscriber-Modell wird für Anwendungsfälle verwendet, die eine große Menge an generierten Ereignissen erfordern und eine sofortige Garantie von Nachrichten nicht von vorrangiger Bedeutung ist. Anwendungen, die in die angegebenen Buckets fallen, sind gute Kandidaten für dieses Muster.

  • Anwendungen, bei denen keine starke Konsistenz für Ereignisse zwischen Sender und Empfänger erforderlich ist und die Anordnung von Daten/Ereignissen keine geschäftlichen Auswirkungen hat. Dies ist ein schließlich konsistentes Entwurfsmuster.
  • Anwendungen, bei denen die Echtzeitantwort von Abonnenten keinen Einfluss auf den tatsächlichen Geschäftsablauf hat.
  • Abonnenten, die zu verschiedenen Themen gehören, sind unabhängig und können unterschiedliche Verfügbarkeits- und Betriebszeitmetriken haben.

Um einen Publisher-Subscriber auf die richtigen SLAs für Zuverlässigkeit und Verfügbarkeit zu skalieren, um die End-2-End-Geschäftsanwendungsfälle zu bedienen, werden die folgenden Designüberlegungen empfohlen.

  • Idempotente Abonnenten – Abhängig vom Gesamt-QOS-Set und im Fall von Fehlern können mehrere Abonnenten dieselbe Nachricht mehr als einmal senden. Daher sind Abonnenten verpflichtet, Idempotenz aufrechtzuerhalten , dh wiederholte Nachrichten nicht mehr als einmal zu verarbeiten und doppelte Nachrichtenbehandlung zu haben.
  • Nachrichtenreihenfolge und -priorität – Nachrichten können abhängig von mehreren Faktoren wie Partitionen, Verbrauchergruppen in einem anderen Zeitrahmen als ihrer Erstellung verarbeitet werden. Daher sollte jede Nachricht im gesamten Geschäfts-/Anwendungsablauf unabhängig sein.
  • Warteschlange für unzustellbare Nachrichten – Abhängig von der TTL-Einrichtung für Nachrichten und der Verfügbarkeit/Fehlerbehandlung der Verbraucher können einige der Nachrichten in der Warteschlange für unzustellbare Nachrichten landen . Diese Nachrichten sollten von den Herausgebern erneut verarbeitet werden, um geschäftliche Auswirkungen zu vermeiden.
  • Sicherheit – Unterschiedliche Themen auf den Message Brokern sollten unabhängige Autorisierungsrichtlinien sein, um sicherzustellen, dass Clients nicht versehentlich Informationen aus einem anderen Thema austauschen. Clientzertifikate und gegenseitiges TLS sind einige gute Sicherheitsrichtlinien.
Pub-Sub-Modell mit mehreren Ebenen

Zusammenfassung

Pub-Sub ist ein gängiges, unkompliziertes Designmuster, das in Aysnc-basierten verteilten Systemen verwendet wird, da es hilft, für Millionen von Kunden zu skalieren, ohne dass eine komplexe Bereitstellungssemantik beibehalten werden muss. Für komplexe Anwendungsfälle, in denen die Nachrichten/Ereignisse dynamische Routing -Muster aufweisen müssen, sind jedoch andere Entwurfsmuster wie z . Wir werden versuchen, sie in den kommenden 101-Blogs zum Erlernen funktionaler Architektur zu behandeln.

Für Feedback senden Sie bitte eine Nachricht an amit[dot]894[at]gmail[dot]com oder wenden Sie sich an einen der Links unter https://about.me/amit_raj .

Suggested posts

Informationen zu Domänennamen finden

Ein Auszug aus Small, Sharp Software Tools von Brian P. Hogan

Informationen zu Domänennamen finden

Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.

Zeitschrift Ouvert

Zeitschrift Ouvert

Offenes Tagebuch: Ein Bild pro Tag. Geschichten haben mich schon immer fasziniert.

Related posts

Schaffung einer sicheren Arbeitsumgebung

Schaffung einer sicheren Arbeitsumgebung

„Er wird mich beschützen, wenn ich in Gefahr bin. Er wird mich in seinem Zelt verstecken.

Die „Learning at Work Week“ ist wichtiger als Sie denken

Die „Learning at Work Week“ ist wichtiger als Sie denken

Es fällt uns oft schwer, das umzusetzen, von dem wir wissen, dass es gut für uns ist. Von der Aussage, dass wir einen Lebensgefährten lieben, bis hin zur Erinnerung daran, wie ein Pirat zu reden – es wird immer diejenigen geben, die behaupten, dass ein Tag, eine Woche oder ein Monat voller Ereignisse nicht nötig sei, weil sie diese Dinge bereits tun.

Der Soloauftritt des rothaarigen Mädchens

Im Auftrag von Hayden filmt Katie sich selbst beim Masturbieren.

Der Soloauftritt des rothaarigen Mädchens

Es war nach Mitternacht, als Hayden Katie nach ihrem gemeinsamen Abend zurück in ihren Studentenwohnheim fuhr. Sie hatte morgens einen frühen Unterricht und hatte keine Kleidung mehr zum Wechseln, nachdem sie die Nacht zuvor bei ihm übernachtet hatte.

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Die Vorteile des Schreibens und Strategien, die Ihnen dabei helfen

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.