Message-Broker

In moderner, verteilter IT-Infrastruktur werden Message-orientierte Systeme immer wichtiger. Wo früher eine harte, synchrone Kopplung über API-Schnittstellen eingesetzt wurde, findet man heute asynchrone Schnittstellen zwischen verschiedenen Systemen. Dies fördert insbesondere durch die asynchrone Anbindung eine bessere Lastverteilung und somit die Ausnutzung der verfügbaren Ressourcen.

Ferner werden Message-Queuing-Systeme eingesetzt, um beispielsweise Grenzen zwischen einzelnen Sicherheitszonen zu überwinden.

Insbesondere leichtgewichtige und anwendungsunabhängige Protokolle wie MQTT oder AMQP kommen heute oft zum Einsatz. Während MQTT überwiegend im Bereich von Embedded Systems und IoT-Systemen anzutreffen ist, findet man AMQP-basierte Message oriented Middleware in vielen Bereichen, vor allem im Enterprise-Umfeld.

Organisatorisch unterstützen Message Broker das Publish-Subscribe-Pattern, indem sie dieses auf FIFO-Speichern abbilden.

RabbitMQ

RabbitMQ ist ein Open Source Message Broker, der kommerziell von dem Unternehmen Pivotal Software weiterentwickelt wird. Obwohl RabbitMQ vollständig in der Sprache „Erlang“ geschrieben ist, integriert er sich auch hervorragend in Java-basierte Umgebungen. Auch andere Open Source Projekte wie z. B. OpenStack nutzen intern RabbitMQ als Kommunikationszentrale.

Die technologische Herkunft aus dem Erlang-Umfeld sorgt für eine extrem hohe Betriebsstabilität und Verfügbarkeit bei unproblematischem Aufbau eines Clusters. RabbitMQ kann sehr hohe Durchsatzraten auch bei komplexen Verteilungsregeln abliefern. Der Message Broker ist sehr flexibel, da er neben dem AMQP in Version 0.9.1 auch diverse andere Protokolle wie MQTT, AMQP 1.0, Stomp, WebStomp etc. vermitteln kann. Dies kann übersetzend genutzt werden, d.h., es lassen sich Clients, die verschiedene Protokolle sprechen, dennoch in einer Queue bzw. Exchange kombinieren. Durch verschiedene zum Teil vom Hersteller mitgelieferte Plug-ins lässt sich RabbitMQ erweitern und an Bedürfnisse anpassen.

Benutzerberechtigungen, TLS-Verbindungen und virtuelle Hosts lassen einen RabbitMQ-Server oder RabbitMQ-Cluster als zentrales Element einer Infrastruktur nutzen. Durch diverse Einstellmöglichkeiten lassen sich von einer Gewichtung auf Schnelligkeit bis hin zu einer Gewichtung auf hohe Zustellsicherheit RabbitMQ-Systeme an die jeweiligen Anforderungen anpassen. Ferner bietet RabbitMQ hervorragende Fähigkeiten zum Aufbau diverser Clusterstrukturen.

Apache ActiveMQ „Classic“

Der in Java geschriebene Apache ActiveMQ implementiert vollständig die Java-Message-Service-(JMS-)1.1-Spezifikation. Zusätzlich unterstützt ActiveMQ das Protokoll AMQP in den Versionen 0.9.1 und 1.0, MQTT und Stomp.

Aufgrund der Herkunft aus dem Java-Umfeld und der Positionierung innerhalb des Apache-Projektes wird er oft in diesem Bereich eingesetzt. Im Clusterbereich setzt ActiveMQ auf die Unterstützung durch Apache ZooKeeper. Um die gewünschte Persistenz gewährleisten zu können, setzt ActiveMQ auf KahaDB und Datenbanken, die per JDBC erreichbar sind.

Apache ActiveMQ Artemis

Apache ActiveMQ Artemis ist eine Neuentwicklung, die eine Konvergenz zum ursprünglichen Apache ActiveMQ Projekt aufweist. Der Code basiert auf HornetQ aus JBoss. Der Schwerpunkt dieser Neuimplementierung liegt auf hoher Performance bei gleichzeitiger Anpassung an neue Paradigmen, wie beispielsweise die Fähigkeit zur Nutzung in Containern. Artemis unterstützt JMS 1.1 und 2.0, Hochverfügbarkeit durch Shared Storage und Netzwerkreplikation sowie dynamisches Clustering.

Datenströme

Im Bereich der Stream-Verteilung wird typischerweise nicht auf ein FIFO-Konzept gesetzt. Typischerweise implementieren diese Dienste vielmehr Logs, in die Publisher schreiben und in denen Consumer lesen und die Streaming-Software die Einträge nach Erfüllen eines Kriteriums, wie Alter oder Größe des Logs, verwirft. Ob alles bereits gelesen wurde, muss die Consumer-Software selbst sicher stellen.

Apache Kafka

Apache Kafka als typischer Vertreter der Streaming-Fraktion ist auf hohen Datendurchsatz optimiert. Insbesondere die konsequente Verteilung von Teilaufgaben auf einzelne Knoten im Cluster bietet viele Optionen zur Optimierung und Performancesteigerung. Die Clusterkoordination in einem Kafka-Cluster übernimmt Apache ZooKeeper.

Durch die Einfachheit der Struktur bzw. den bewussten Verzicht auf Zustell-Logik bzgl. einzelner Nachrichten kann dieses System extrem große Datenmengen in kurzer Zeit bewegen und skalieren. Dazu kommen Möglichkeiten wie beispielsweise Stream-Processing, die es erlauben, im laufenden Datenstrom bereits Filter, Verdichtungen oder Faltungen etc. durchzuführen. Diese Fähigkeiten sowie die Option, beispielsweise an ein Hadoop anzudocken, sind besonders im Big-Data-Umfeld von hoher Bedeutung.

Im Bereich des klassischen Messagings ist Apache Kafka mit Systemen wie RabbitMQ vergleichbar, verlagert aber große Teile der Logik in Clientsysteme, ohne dabei Protokolle wie AMQP zu implementieren. Daher bietet es sich nicht an, in diesem Umfeld Apache Kafka anstelle eines RabbitMQ oder ActiveMQ einzusetzen.

Sie haben Fragen zum Thema Message Broker? Dann sind wir der richtige Partner für Sie!

Open Source Support Center
PostgreSQL® Competence Center

Haben wir Ihr Interesse geweckt?

Unsere Experten beantworten gerne Ihre individuellen Fragen und unterstützen Sie bei der Wahl der passenden Open Source Lösung für Ihr Vorhaben.

Das credativ®
Open Source Support Center

Unsere Antworten auf die häufigsten Fragen:

Unser Support orientiert sich an den wirklichen Bedürfnissen unserer Kunden. Daher ist es für uns selbstverständlich, mehr zu bieten als der klassische Support vieler Hersteller. Wichtig ist jedoch, und das gilt für jede Software, die in unternehmenskritischen Bereichen betrieben wird, dass der Betrieb entsprechend abgesichert ist. Hier bieten wir Ihnen einen technischen Support auf Hersteller-Niveau mit garantierten Service-Level-Agreements.
Alle unsere Mitarbeiter sind selbst erfahrene Open Source Entwickler und Administratoren. Wir sind der Ersatz für einen fehlenden Herstellersupport und unterstützen mit unserem Open Source Support Center den gesamten Life-Cycle Ihrer Open Source Software. Bei uns erhalten Sie den benötigten Support und alle Services für Ihren gesamten Open Source Stack aus einer Hand.
Unsere Service- und Supportverträge berücksichtigen Ihre Interessen und nicht die irgendwelcher Investoren. Wir weichen ganz bewusst extrem von den üblichen Vertrags- und Preismodellen zahlreicher internationaler Softwarehersteller ab und sind stolz darauf, dass unsere fairen Supportangebote eine solide und vertrauensvolle Basis für die langjährige und erfolgreiche Zusammenarbeit mit großen nationalen und internationalen Kunden ist. Wichtig ist uns dabei auch ein Modell, das völlig unabhängig von den üblichen Faktoren wie z.B. der Anzahl der User, Anzahl der verwendeten CPUs/Cores und Server oder ähnlichen limitierenden Faktoren ist. Weitere Details besprechen wir gerne persönlich mit Ihnen. Mehr zu der Funktionsweise unseres Open Source Support Centers
Das garantieren wir! Sie erhalten die Sicherheit, die Sie benötigen. Wir sind immer für Sie da. Rund um die Uhr und an 365 Tagen im Jahr. Weitere Informationen dazu haben wir für Sie unter 24x7-Support bereitgestellt.
Keine Sorge! Wir arbeiten ohne ein vorgeschaltetes Call-Center für Sie. Sie erhalten einen direkten Zugang zu unseren Open Source Spezialisten. Sie erreichen unseren Support über ein zentrales Dispatching telefonisch, per Ticket-System und per Mail. Weitere Informationen dazu haben wir für Sie unter Erreichbarkeit bereitgestellt.
Unser Open Source Support Center befindet sich in der Bundesrepublik Deutschland und alle unsere technischen Spezialisten arbeiten bei uns in Festanstellung. Unser Support erfolgt bundesweit und international wahlweise in deutscher oder englischer Sprache.
Unser technischer Support umfasst eine Vielzahl gängiger Open Source Projekte, die sehr oft im unternehmenskritischen Einsatz betrieben werden. Eine Auswahl der von unserem Open Source Support Center unterstützten Projekte finden Sie in unserer Softwareübersicht. Weitere Informationen haben wir für Sie unter Software bereitgestellt.
Selbstverständlich! Im Falle einer technischen Störung gilt es, die jeweilige Ursache schnell und präzise zu ermitteln und für eine Beseitigung der Ursache zu sorgen oder zumindest einen ersten Workaround zu finden. Daher bieten wir Ihnen sowohl für die Verfügbarkeit als auch für unterschiedliche Reaktionszeiten garantierte Service-Level-Agreements.