Message-Broker sind Vermittlungssysteme in der Netzwerkkommunikation, die es Netzwerklösungen ermöglichen, Nachrichten auszutauschen und miteinander zu kommunizieren.

Message Broker bilden einen gemeinsamen Integrationsmechanismus zur Unterstützung von Cloud-nativen, serverlosen, Microservices-basierten und hybriden Cloud-Architekturen.

Der Message Broker erreicht dies durch die Umwandlung von Nachrichten zwischen autorisierten Messaging-Protokollen. Dadurch können voneinander abhängige Dienste sofort miteinander kommunizieren, unabhängig von ihren unterschiedlichen Programmiersprachen.

Im Folgenden haben wir für Sie die beliebtesten Message Broker zusammengestellt, die Sie für die Kommunikation zwischen modernen Anwendungen nutzen können.

Solace PubSub

PubSub , ein von Solace angebotener Message Broker, ist einer der langjährigen Marktführer im Bereich der nachrichtenorientierten Middleware. Seine Aufgabe ist einfach: Ihr Echtzeitgeschäft mit ereignisgesteuerter Integration zu ermöglichen.

PubSub vermittelt die Übermittlung von Nachrichten, so dass Ihre Anwendungen dank einer Vielzahl von APIs, der Unterstützung offener APIs und Protokolle sowie Konnektoren für gängige Anwendungen, Cloud-Dienste und Integrationstechnologien Nachrichten in ihrem ursprünglichen Format senden und empfangen können.

solace-broker-1

PubSub ist extrem vielseitig und unterstützt Publish/Subscribe, Queuing, Request/Reply und Streaming sowie persistente und nicht-persistente Zustellung. Es ist außerdem sehr leistungsfähig: Benutzer können fortschrittliche Messaging-Funktionen wie Caching, hierarchische Themen mit Wildcards, partitionierte Warteschlangen, Replay, Time-to-Live und mehr nutzen.

Schließlich ermöglicht eine integrierte Kafka-Bridge den Nachrichtenfluss zwischen Kafka-Umgebungen und Assets, während die Event-Portal-Software von Solace Ihnen die Werkzeuge an die Hand gibt, mit denen Sie Event-Streams einfach entdecken und verwalten können. Als Komponente der PubSub Platform können Sie viele dieser vollständig interoperablen Broker zu einem “Event Mesh” verbinden, das Nachrichten dynamisch zwischen Umgebungen und rund um die Welt weiterleitet, selbst bei Anwendungsfehlern und Netzwerkausfällen.

Es ist als kostenlose Software (mit einer kostenpflichtigen Support-Option), als Cloud-verwalteter Service und als Appliance erhältlich, je nach den Anforderungen Ihres Unternehmens.

Memphis

Memphis ist ein Open-Source Message Broker, der speziell für Entwickler entwickelt wurde, die ihn für In-App-Streaming-Anwendungen einsetzen. Er kann einfach eingesetzt werden und skaliert Ihre datengesteuerte App innerhalb weniger Sekunden.

Die Entwickler haben dafür gesorgt, dass die Benutzer die Vorteile anderer Message Broker und mehr von Memphis nutzen können. Dieser Message Broker nutzt die Funktionalitäten des NATS-Kerns, um automatische Optimierungstechniken, Schema-Management, Inline-Verarbeitung und Fehlerbehebungsmöglichkeiten zu bieten.

Dieser von der Community betriebene Message Broker verfügt über eine benutzerfreundliche Oberfläche, die vollständig für eine außergewöhnliche Leistung optimiert ist. Memphis ist mit CLI und SDKs für Node.JS, Go, Python, Typescript und NestJS ausgestattet, so dass Entwickler die Funktionen des Message Brokers in ihre Plattform integrieren können.

Es bietet eine Dead-Letter-Queue-Funktion mit automatischer Nachrichtenwiederholung, um nicht verarbeitete Nachrichten zu melden.

Hauptmerkmale von Memphis:

  • Läuft auf Kubernetes, um eine vollständige Hardwareabstraktion für Skalierung, Upgrades, Reboots und mehr zu unterstützen.
  • Die Fehlersuche bei nicht verarbeiteten Nachrichten ist einfach, indem Sie auf den Datenverlauf jeder Nachricht zugreifen.
  • Die intuitive Benutzeroberfläche und die Befehlszeilenschnittstelle (CLI) sind praktisch für Datentechniker, um Fehler in Echtzeit zu beheben.
  • Enthält einzigartige Schema-Management- und Inline-Transformationsfunktionen.

RabbitMQ

RabbitMQ wurde 2007 veröffentlicht und ist einer der besten Message Broker, der von Tausenden von Benutzern weltweit als Nachrichtenvermittler eingesetzt wird. Er wurde in der Programmiersprache Erlang geschrieben, ist unglaublich leichtgewichtig und kann sowohl in Cloud- als auch in On-Premises-Konfigurationen installiert werden.

RabbitMQ ist äußerst zuverlässig und intuitiv. Seine benutzerfreundliche Oberfläche ermöglicht es Anwendungen, Nachrichten auszutauschen und den Message Broker einfach zu steuern. Dieser leistungsstarke Message Broker ist mit vielen Entwicklerplattformen kompatibel und unterstützt viele Nachrichtenprotokolle. Er kann problemlos in verteilten und föderierten Konfigurationen eingesetzt werden, um hohen Anforderungen gerecht zu werden.

Der Message Broker ist interoperabel und funktioniert auf verschiedenen Betriebssystemen, Cloud-basierten Plattformen und Entwickler-Tools. Die wichtigsten unterstützten Sprachen sind Java, .NET, PHP, Python, JavaScript, Ruby und Go. Er verfügt über verschiedene Funktionen und unterstützt Plugins, die die Integration und Interaktion mit anderen Systemen erleichtern.

Als Open-Source Message Broker ist RabbitMQ völlig kostenlos. Eine separate kommerzielle Version ist ebenfalls gegen eine Abonnementgebühr erhältlich.

Apache Kafka

Als nächstes haben wir Apache Kafka, einen robusten Nachrichtenbroker, der einen besseren Durchsatz, eine integrierte Partitionierung, Replikation und Fehlertoleranz als andere Nachrichtenbroker bietet. Kafka verwendet die Technik des verteilten Systems, das das TCP-Protokoll für die Kommunikation zwischen Clients und Servern einsetzt.

Dies garantiert eine schnelle Leistung und macht Kafka zu einer idealen Lösung, um die Kommunikationsanforderungen großer Nachrichtenverarbeitungsanwendungen zu erfüllen.

Apache Kafka kann sowohl auf lokalen als auch auf Cloud-basierten Systemen eingesetzt werden und funktioniert einwandfrei auf Bare Metal, virtuellen Maschinen und Containern. Es wird in der Regel dort eingesetzt, wo es erforderlich ist, die Verarbeiter und Datenproduzenten zu isolieren, die nicht zugestellten Nachrichten zu puffern und in ähnlichen Szenarien.

Dieser Open-Source Message Broker wurde ursprünglich entwickelt, um Website-Aktivitäten zu verfolgen und umfangreiche Daten zu speichern. Seine Fähigkeit, große Datenmengen in einem verteilten und fehlertoleranten Cluster zu speichern, macht ihn zur perfekten Wahl für große Technologieunternehmen. Der Kafka Message Broker ist in der Lage, das Streaming von Ereignissen in Echtzeit, das Pipelining und die Wiederholung von Daten, die in schnellen Betriebsszenarien erforderlich sind, geschickt zu verwalten.

Apache ActiveMQ

Der auf Java basierende Apache ActiveMQ ist ein Open-Source Message Broker, der die Einrichtung und Wartung für Sie übernimmt und so Ihre Arbeitslast reduziert.

Er unterstützt alle wichtigen Standardprotokolle, die in der Branche verwendet werden, und ermöglicht die nahtlose Integration mit mehreren Plattformen über das beliebte AMQP-Protokoll.

Ebenso erleichtert das STOMP-Protokoll den Nachrichtenaustausch zwischen Webanwendungen über WebSockets, und das MQTT-Protokoll ermöglicht den Nachrichtenaustausch zwischen IoT-Geräten.

Es ist mit zahlreichen sprachübergreifenden Plattformen und Clients kompatibel, die in verschiedenen Sprachen erstellt wurden, darunter JavaScript, C, C , Python, .Net und mehr.

Es unterstützt erweiterte Funktionen wie Nachrichtengruppen, kombinierte Warteschlangen und Clustering, um nur einige zu nennen. ActiveMQ ist äußerst flexibel und vielseitig genug, um schnell in verschiedenen Messaging-Anwendungsfällen eingesetzt zu werden.

ActiveMQ ist in zwei Varianten erhältlich – dem “klassischen” Broker und der erweiterten Version, die als Artemis bekannt ist.

Das klassische ActiveMQ basiert auf einer endlos erweiterbaren Architektur und ist mit mehreren Generationen von Messaging-Anwendungen kompatibel. Artemis, die fortschrittliche Version von ActiveMQ, zeichnet sich dagegen durch eine Non-Blocking-Architektur aus, die die von der neuen Generation von Anwendungen geforderte hohe Leistung bietet.

WSO2

WSO2 ist der nächste Message Broker, den Sie sich ansehen sollten. Er wurde mit der Absicht entwickelt, Message-Broking-Funktionen in einer verteilten Umgebung anzubieten.

Dieser extrem leichtgewichtige und einfach zu bedienende Message Broker ist mit einem kontinuierlichen Verfügbarkeitsmodus ausgestattet, der eine hohe Verfügbarkeit gewährleistet und die Server innerhalb des Clusters erweitert, wodurch das Risiko eines Single Point of Failure minimiert wird.

Die Open-Source-Technologie verwaltet effizient mehrere Warteschlangen, Abonnenten und Nachrichten, um persistentes Messaging zu ermöglichen.

WSO2 unterstützt mehrere Protokolle, darunter MQTT, ein leichtgewichtiges Machine-to-Machine-Netzwerkprotokoll, das Messaging-Funktionen für Unternehmen im IoT bietet.

Es verbindet entfernte Geräte mit den Brokern und ermöglicht so eine Machine-to-Machine (M2M)-Kommunikation, die jede Sekunde Zehntausende von gleichzeitigen Ereignissen erzeugen kann. WSO2 arbeitet mit einem flexiblen Bereitstellungsmodell, das Funktionen für die Ausführung auf einem einzelnen Knoten bis hin zu Cluster-Bereitstellungen bietet.

Die bemerkenswerten Merkmale von WSO2 sind folgende

  • Unterstützt JMS v1.0 und v1.1 API
  • Entspricht einer Reihe von Standards.
  • Unterstützt das Advanced Message Queuing Protocol (AMQP) v0.91 und das MQTT-Protokoll für alle QoS-Stufen und Retained Messaging.
  • Unterstützt viele Sprachen/Plattformen, darunter Java, .Net, C, C , PHP, Ruby, Erlang und mehr.

ZeroMQ

Schließlich haben wir noch ZeroMQ, einen hochentwickelten Nachrichtenmakler, der Hochgeschwindigkeitsverbindungen zwischen Anwendungen bietet, unabhängig von der Sprache und der Plattform, auf der sie laufen.

Er besteht aus asynchronen Input-Output-Engines, die auf Messaging-Bibliotheken geladen sind, und stellt eine Many-to-Many-Beziehung zwischen Sender und Empfänger her.

Es überträgt Nachrichten von einer Anwendung zu einer anderen über WebSockets mit Hilfe zahlreicher Transportkanäle wie In-Process, Inter-Process, TCP, Multicast, TIPC, IPC und UDP.

ZeroMQ ist mit allen Funktionen eines standardmäßigen verteilten Nachrichtensystems ausgestattet und sendet Nachrichten über miteinander verbindbare Sockets, die in verschiedenen Mustern wie Pub-Sub, Anfrage-Antwort, Aufgabenverteilung und Fan-Out angeordnet werden können.

ZeroMQ lässt sich in hohem Maße anpassen, um den einzigartigen Anforderungen verschiedener Anwendungsfälle gerecht zu werden, und unterstützt mehrere Messaging-Muster und Sprachimplementierungen.

Es ist mit verschiedenen Programmiersprachen kompatibel, insbesondere mit C, C , C#, Java, Python, Ruby und Perl.

Der Message Broker ist extrem schnell, quelloffen und verfügt über eine leichtgewichtige Messaging-Bibliothek, die auch bei asynchronen Input-Output-Engines eine außergewöhnlich gute Leistung erbringt.

Sehen wir uns nun an, wie Message Broker funktionieren und welche Vorteile der Einsatz von Message Brokern bietet.

Wie funktionieren Nachrichten-Broker?

Message-Broker können Nachrichten sichern, archivieren, weiterleiten und an die entsprechenden Empfänger versenden. Sie fungieren als Brücke zwischen verschiedenen Anwendungen und ermöglichen es Absendern, Nachrichten zu versenden, ohne den Standort, die Aktivität oder die Anzahl der Empfänger zu kennen.

Nachrichtenbroker stützen sich häufig auf ein Element, das als Nachrichtenwarteschlange bekannt ist, um eine zuverlässige Speicherung und sichere Zustellung von Nachrichten zu gewährleisten. Die Nachrichtenwarteschlange speichert und indiziert die Nachrichten, bis die konsumierenden Anwendungen sie verarbeiten können. Nachrichten werden in einer Nachrichtenwarteschlange auf die gleiche Weise gespeichert, wie sie übertragen wurden, und bleiben dort, bis der Empfang überprüft wird.

Um eine bessere Vorstellung davon zu bekommen, wie Nachrichtenbroker ihre Aufgaben erfüllen, sollten wir einige ihrer grundlegenden Konzepte verstehen:

  • Der Producer ist eine Schnittstelle, die direkt mit dem Message Broker kommuniziert, um die gespeicherten Nachrichten zur Verteilung zu senden.
  • Ein Consumer ist eine Einheit, an die die Nachricht zugestellt werden muss und die Daten vom Message Broker anfordert. Sie können sie auch als Abonnenten bezeichnen.
  • EineWarteschlange oder ein Topic ist ein Datentyp, der von Message Brokern zum Speichern von Nachrichten verwendet wird. Sie können sie als einen Ordner in den Computern betrachten und arbeiten nach dem FIFO-Prinzip (First in First out).
  • Schließlich haben wir einen Exchanger, eine Art logische Einheit, die die Warteschlangen verwaltet und Gruppen von Nachrichten erstellt, die es den Konsumenten ermöglichen, Nachrichten auszutauschen.

Die Kommunikation über den Austausch von Nachrichten mit Hilfe von Message Brokern erfolgt auf der Grundlage von zwei verschiedenen Nachrichtenmustern oder -arten. Sie sind bekannt als Point-to-Point Messaging und Publish/Subscribe Messaging.

Punkt-zu-Punkt-Nachrichtenaustausch: Dieses Kommunikationsmodell ist das Verteilungsmuster, das in Nachrichtenwarteschlangen verwendet wird, in denen Absender und Empfänger jeder Nachricht auf einer Eins-zu-Eins-Basis zugeordnet sind. Jede Nachricht in der Warteschlange wird nur einmal gelesen und nur an einen Empfänger gesendet.

Das Punkt-zu-Punkt-Nachrichtenmodell wird in Szenarien für die Gehaltsabrechnung und die Verarbeitung von Finanztransaktionen eingesetzt, bei denen sichergestellt werden muss, dass jede Zahlung nur einmal getätigt wird. Wenn der Verbraucher offline ist, speichert der Message Broker die Nachricht in der Warteschlange und stellt sie zu einem späteren Zeitpunkt zu.

Veröffentlichen/Abonnieren von Nachrichten: Bei dieser Art des Nachrichtenaustauschs weiß der Produzent nicht, wer der Konsument der Nachricht sein wird. Er sendet Nachrichten zu einem Thema, und alle Anwendungen, die ihn abonniert haben, erhalten alle veröffentlichten Nachrichten.

Der Konsument und der Produzent stehen in einer Eins-zu-Viele-Beziehung. Dieses Modell wird in einem auf einer ereignisgesteuerten Architektur basierenden System verwendet, in dem die Anwendungen keine Abhängigkeiten voneinander haben.

Hier sehen Sie den Lebenszyklus einer Nachrichtenübermittlung mit einem Message Broker.

  • Der Zyklus beginnt mit dem Senden von Nachrichten an einzelne oder mehrere Ziele.
  • Dann konvertieren Sie die Nachrichten in ein anderes Modell.
  • Teilen Sie die Nachrichten in kleinere Teile auf, übermitteln Sie sie an den Verbraucher, sammeln Sie die Antworten und wandeln Sie sie in eine einzige Nachricht um, die Sie an den Benutzer zurückschicken.
  • Verwenden Sie den Speicher eines Drittanbieters, um eine Nachricht zu ergänzen oder zu speichern.
  • Holen Sie die erforderlichen Daten mit Hilfe der Webdienste ab
  • Senden Sie Antworten, wenn eine Nachricht fehlschlägt oder Fehler auftreten.
  • Verwenden Sie das Publish-Subscribe-Muster, um Nachrichten auf der Grundlage von Inhalt und Thema weiterzuleiten.

Vorteile der Nutzung von Message Brokern

Hier sind die Vorteile des Einsatzes von Message Brokern im Netzwerk:

  • Der Produzent und der Konsument können unabhängig davon, ob der andere online ist, Nachrichten austauschen. Ein Message Broker stellt die Nachricht zu, sobald der Konsument aktiv wird.
  • Message Broker garantieren die Zustellung von Nachrichten in jeder Situation, und der Acknowledgment-Mechanismus informiert den Produzenten über die Zustellung, wodurch die Technologie sehr langlebig und beständig ist.
  • Die asynchrone Verarbeitung sorgt dafür, dass Aufgaben, die viele Systemressourcen erfordern, verschiedenen Prozessen anvertraut werden. Dies beschleunigt Ihre Anwendung und verbessert die Benutzerfreundlichkeit.
  • Message-Broker stellen die aufgrund von Fehlern nicht zugestellten Nachrichten erneut zu. Die erneute Zustellung wird entweder sofort oder später zu einem bestimmten Zeitpunkt versucht. Wenn die Nachrichten auch nach zahlreichen Versuchen nicht zugestellt werden, werden sie an den Produzenten weitergeleitet.

Resümee

Wir haben jetzt also eine ziemlich klare Vorstellung davon, wie der Einsatz von Message Brokern im System die gesamte Kommunikationsarchitektur erheblich verbessern kann. Es gibt viele zuverlässige Anbieter von Message Brokern, und wir haben die beliebtesten Message Broker aufgelistet, die den Markt erobern.

Sie können jeden beliebigen Message Broker einsetzen, der Ihrer Meinung nach die Anforderungen Ihres Unternehmens an die Datenverwaltung erfüllt und die Verteilung von Nachrichten zwischen Ihren Anwendungen unterstützt.

Sie können auch die beste SMS-API erkunden, um Nachrichten an Ihre Benutzer zu senden.