Startseite topics Nachrichtenwarteschlangen: Eine Einführung Was ist eine Nachrichtenwarteschlange?
Eine Nachrichtenwarteschlange ist eine Komponente von Messaging-Middleware, die es unabhängigen Anwendungen und Services ermöglicht, Informationen auszutauschen.
Schwarzer und blauer Hintergrund
Was ist eine Nachrichtenwarteschlange?

Eine Nachrichtenwarteschlange ist eine Komponente von Messaging-Middleware-Lösungen, die es unabhängigen Anwendungen und Services ermöglicht, Informationen auszutauschen. Nachrichtenwarteschlangen speichern „Nachrichten“ – d. h. Datenpakete, die von Anwendungen erstellt werden, damit andere Anwendungen sie verarbeiten (konsumieren) können – in der Reihenfolge, in der sie übertragen werden, bis die konsumierende Anwendung sie verarbeiten kann. Dadurch können Nachrichten sicher warten, bis die empfangende Anwendung bereit ist. Wenn also ein Problem mit dem Netz oder der empfangenden Anwendung auftritt, gehen die Nachrichten in der Nachrichtenwarteschlange nicht verloren.

Dieses Modell, das als asynchrone Nachrichtenübertragung bekannt ist, verhindert Datenverluste und macht es möglich, dass Systeme weiterhin funktionieren, selbst wenn Prozesse oder Verbindungen fehlschlagen. Auf diese Weise können Entwickler dafür sorgen, dass Prozesse und Anwendungen voneinander getrennt bleiben, wodurch ihre Datenübertragung in sich geschlossen und ereignisgesteuert erfolgt, was seinerseits die Zuverlässigkeit der Architektur erhöht.

Nachrichtenwarteschlangen sind in Lösungen für die Nachrichtenübertragung (Messaging) für zahlreiche Bereitstellungsoptionen verfügbar, unter anderem auch für optimierte physische Appliances, Cloud-Services, Mainframes und Software.

Vorteile

Lösungen zur Steuerung von Nachrichtenwarteschlangen oder Message-Queuing-Lösungen sind branchenübergreifend weit verbreitet und können Entwicklern und Systemadministratoren gleichermaßen eine Reihe von Vorteilen bieten, die unter anderem die folgenden umfassen:

  • Zuverlässige Nachrichtenübermittlung: Die Verwendung einer Nachrichtenwarteschlange kann sicherstellen, dass geschäftskritische Nachrichten zwischen Anwendungen nicht verloren gehen und dem Empfänger nur einmal zugestellt werden. Dank dieser Funktion ist zusätzliche Logik für die Deduplizierung oder zur Verhinderung von Datenverlusten überflüssig.

  • Anwendungsübergreifende Konnektivität: Manche Nachrichtenwarteschlangenlösungen können Nachrichtenverschlüsselung, Transaktionalität und andere Kommunikations-/Übertragungsaspekte zwischen Anwendungen und Services handhaben. Dies vereinfacht die Anwendungsentwicklung und ermöglicht die Zusammenarbeit unterschiedlicher und voneinander unabhängiger Architekturen.

  • Vielseitigkeit: Nachrichtenwarteschlangenlösungen können ein Vielzahl von Sprachen unterstützen, so z. B. Java, Node.js, COBOL, C/C++, Go, .NET, Python, Ruby und C#. Sie können auch zahlreiche Anwendungsprogrammierschnittstellen (APIs) und Protokolle unterstützen, darunter MQTT, AMQP und REST sowie andere.

  • Ausfallsicherheit: Die asynchrone Nachrichtenübertragung stellt sicher, dass anwendungsspezifische Fehler keine nachteiligen Auswirkungen auf das System haben. Wenn eine Komponente im System blockiert ist, können alle übrigen trotzdem weiterhin mit der Warteschlange interagieren und Nachrichten verarbeiten. Dadurch verringert sich die Wahrscheinlichkeit, dass die Stabilität des gesamten Systems durch den Ausfall von nur einer Komponente beeinträchtigt wird.

  • Verbesserte Sicherheit: Eine Nachrichtenwarteschlange kann gegebenenfalls alle Nachrichten identifizieren und authentifizieren und bei manchen Lösungen für Nachrichtenwarteschlangen kann konfiguriert werden, dass Nachrichten im Ruhezustand, während der Übertragung oder durchgängig (End to End) verschlüsselt werden. Dies kann zur Gesamtsicherheit der Anwendungen und/oder Infrastruktur beitragen.

  • Integrierte Dateiübertragungen: Manche Lösungen für Nachrichtenwarteschlangen bieten zusätzliche Funktionen, wie z. B. die Fähigkeit zur Übertragung von Dateien. Dies kann in Unternehmen, in denen sich solche Lösungen im Gebrauch befinden, als Alternative zu FTP genutzt werden.
Anwendungsfälle

Die heutigen Datenverarbeitungsumgebungen in Unternehmen sind komplex und stark dezentralisiert. Messaging erleichtert die Integration von Anwendungen und Services auf unterschiedlichen Plattformen durch die Bereitstellung eines einzigen, stabilen und sicheren gemeinsamen Messaging-Backbones. Dies schützt vor Datenverlust und stellt sicher, dass die Systeme selbst bei instabiler Anbindung auch weiterhin funktionieren.

Nachrichtenwarteschlangen eignen sich hervorragend für die Integration lokaler Backend-Systeme mit Cloud-Services. In Cloud-Architekturen werden Anwendungen häufig in kleine, voneinander unabhängige Komponenten aufgeteilt. Das macht es einfacher, sie zu entwerfen und zu programmieren, und es wird auch leichter, ihre Leistung zu verwalten. Nachrichtenwarteschlangen ermöglichen diesen entkoppelten cloudbasierten Anwendungen die Kommunikation untereinander oder mit lokalen Systemen.

Die Steuerung von Nachrichtenwarteschlangen (Message-Queuing) erhöht die Ausfallsicherheit der Architektur, da die Nachrichten persistent sein können. Das bedeutet, dass sie so lange auf der Festplatte gespeichert werden, bis der Service, der die Nachricht empfängt, die Verarbeitung bestätigt. Messaging-Warteschlangen können in Szenarios verwendet werden, die ein hohes Maß an Sicherheit, Fehlertoleranz und Genauigkeit erfordern, wie z. B. die Verarbeitung von Finanztransaktionen, Buchungen von Flügen oder die Aktualisierung von Patientenakten im Gesundheitswesen.

Nachrichtenwarteschlangen können auch verwendet werden, um Anwendungen und Systemen, die sich in unterschiedlichen Clouds (sei es Public Cloud  oder Private Cloud) befinden, die Kommunikation zu ermöglichen, selbst wenn sie sich in verschiedenen Ländern oder sogar auf entfernten Kontinenten befinden. Die Verwendung einer Nachrichtenwarteschlange erhöht die Fehlertoleranz und kann verhindern, dass Daten über geografisch und technisch heterogene Systeme hinweg dupliziert werden oder verloren gehen. Da jeder Service innerhalb des Systems entkoppelt, also logisch von den anderen getrennt ist, kann jeder Service auch dann weiter funktionieren, wenn andere Services oder Anwendungen fehlschlagen oder blockiert werden.

Nachrichtenwarteschlangen funktionieren über verschiedenartige Anwendungen hinweg, wie z. B. mobile, IoT- und herkömmliche Transaktionssystemdatensätze. Sie unterstützen außerdem auch verschiedene Plattformen – wie etwa virtuelle Maschinen und Container – und können die Integration zwischen herkömmlichen Anwendungen und den neuesten Lösungen von heute ermöglichen.

Nachrichtenwarteschlange versus …

Nachrichtenwarteschlange versus Pub/Sub
Nachrichtenwarteschlangen verwenden ein Punkt-zu-Punkt-Messaging-Muster, bei dem eine Anwendung (der so genannte Sender) eine Nachricht an die Warteschlange sendet und eine andere Anwendung (der so genannte Empfänger) diese Nachricht aus der Warteschlange abruft und verarbeitet. Es sollte eine eng gekoppelte Eins-zu-Eins-Beziehung zwischen dem Sender und dem Empfänger bestehen und jede Nachricht sollte nur einmal verarbeitet werden.

Wenn Ihre Anwendungen erfordern, dass Nachrichten an mehrere Empfänger verteilt werden, können entweder mehrere Nachrichtenwarteschlangen miteinander kombiniert oder ein Messaging-Modell vom Typ Publish/Subscribe (Pub/Sub) verwendet werden.

Beim Pub/Sub-Messaging wird die Anwendung, die die Nachricht erzeugt, als Veröffentlichungskomponente (Publisher) bezeichnet, und die Anwendungen, die die erzeugte Nachricht lesen und verarbeiten, werden Subskribenten (oder Abonnenten) genannt. Jede Nachricht wird unter einem bestimmten Thema (Topic) veröffentlicht und jede Anwendung, die dieses Thema abonniert, erhält ein Exemplar aller unter diesem Thema veröffentlichten Nachrichten.

Die meisten Messaging-Middleware-Lösungen unterstützen sowohl das Nachrichtenwarteschlangenmodell (Punkt-zu-Punkt-Muster) als auch das Pub/Sub-Messaging-Modell.

Nachrichtenwarteschlange versus Nachrichtenbus
Ein Nachrichtenbus – eine Art Enterprise Service Bus (ESB) – ermöglicht den Services den ubiquitären Zugriff auf Daten und stellt gleichzeitig sicher, dass sie innerhalb einer verteilten Systemarchitektur entkoppelt und unabhängig voneinander funktionsfähig bleiben. Beim Einsatz eines Nachrichtenbusses müssen alle Services oder Anwendungen einheitliche Datentypen, einen einheitlichen Befehlssatz und einheitliche Kommunikationsprotokolle verwenden (die jedoch in unterschiedlichen Sprachen geschrieben sein können). Die Consumer können bestimmen, wie sie Nachrichten verwenden.

Wenn entkoppelte Anwendungen über einen Nachrichtenbus kommunizieren sollen, müssen die Nachrichten so umgesetzt werden, dass sie alle denselben Typ aufweisen. Im Gegensatz dazu werden Nachrichten von Nachrichtenwarteschlangen unabhängig davon befördert, ob sie vom gleichen Typ sind oder unterschiedliche Typen aufweisen.

Nachrichtenwarteschlange versus Web-Services
Anwendungen können direkt über Web-Services oder APIs kommunizieren, die auf Standardprotokollen wie SOAP (Simple Object Access Protocol) oder HTTP basieren, anstatt über zwischengeschaltete Messaging-Middleware. Die Verwendung von Web-Services in verteilten Systemen ist gängig. Diese Services sind relativ einfach und ohne großen Aufwand zu implementieren, was sie in bestimmten Anwendungsfällen und Szenarien zu einer funktionsfähigen Alternative zu Nachrichtenwarteschlangen macht.

Anders als Nachrichtenwarteschlangen können Web-Services jedoch nicht die Zustellung von Nachrichten garantieren. Für den Fall, dass der Server ausfällt oder die Verbindung fehlschlägt, müssen Sie daher dafür sorgen, dass eine entsprechende Funktionalität zur Behandlung des Fehlers im Client vorhanden ist. Web-Services verfügen auch nicht über Pub-/Sub-Verteilungsmodelle. Messaging-Middleware bietet eine größere Fehlertoleranz und ist besser in der Lage, ein hohes Aufkommen an Datenverkehr oder Aktivitätsspitzen zu bewältigen.

Weitere Informationen dazu, wenn Sie APIs, wann Sie Messaging und wann Sie eine Kombination aus beidem verwenden sollten, enthält der Artikel „An introduction to APIs and messaging“.

Nachrichtenwarteschlange versus Datenbanken
In bestimmten Fällen können Datenbanken als Alternative zu Nachrichtenwarteschlangen verwendet werden; in den meisten Fällen dienen sie jedoch anderen Zwecken und sind nicht ohne weiteres austauschbar. Datenbanken werden am häufigsten zur Speicherung verwendet und ermöglichen Ihnen, wiederholt auf dieselben Informationen zuzugreifen. Nachrichtenwarteschlangen können nicht zu Speicherzwecken verwendet werden. Sobald eine Nachricht verarbeitet (konsumiert) worden ist, wird sie aus der Warteschlange gelöscht.

Es ist zwar möglich, eine Datenbank mit Funktionalität auszustatten, die der einer Nachrichtenwarteschlange ähnelt, aber der Programmieraufwand dafür ist hoch und es sind umfangreiche und fundierte Kenntnisse erforderlich. Datenbanken können lediglich zur Replikation einfacher Warteschlangenstrukturen verwendet werden und sind nicht für größere Anwendungen skalierbar. 

Weitere Informationen zu Datenbanken und ihrer Funktionalität enthält der Blogbeitrag „A Brief Overview of the Database Landscape“.

Message-queuing-as-a-service

Die Steuerung von Nachrichtenwarteschlangen (Message-Queuing) wird traditionell von dedizierten Teams innerhalb der IT verwaltet. Die Bereitstellung „as a Service“ (als Service), d. h. unter Verwendung einer in der Cloud gehosteten Nachrichtenwarteschlange, ermöglicht jedoch, dass Einzelpersonen oder Benutzer entsprechender Geschäftsbereiche (LOB-Benutzer) über ein Portal eigenständig Änderungen an der Messaging-Infrastruktur anfordern können, was die Agilität erhöhen kann.

„Message Queuing as a Service“ funktioniert von Natur aus gut in serverlosen oder Microservice-Architekturen, die in der cloudnativen Entwicklung gängig sind. Da diese Option in einem in der Cloud gehosteten Servicemodell angeboten wird, übernimmt der Cloud-Provider die gesamte Bereitstellung, Installation und Wartung Ihrer Messaging-Infrastruktur, die in der Cloud gehostet wird.

Lernprogramme

Diese Lernprogramme helfen Ihnen, wenn Sie bisher noch keine oder nur wenig Erfahrung mit der Entwicklung von Anwendungen haben, die über IBM MQ kommunizieren:

Mithilfe dieser zusätzlichen Ressourcen können Sie sich einen umfassenderen Überblick verschaffen:

Zugehörige Lösungen
IBM Cloud Pak for Integration

IBM Cloud IBM Cloud Pak for Integration verbindet KI-Automatisierung und einen umfassenden Satz an Integrationstools, um Anwendungen und Daten in jeder beliebigen Cloud- oder On-Premises-Umgebung zu verbinden.                     

Cloud Pak for Integration erkunden
Hybrid-Cloud-Lösungen

Entdecken Sie, wie Hybrid-Cloud-Lösungen, die mit IBM Cloud erstellt wurden, Ihr Unternehmen dabei unterstützen können, in die Cloud zu migrieren, vorhandene Apps zu modernisieren und neue cloudnative Apps zu entwickeln.

Hybrid-Cloud-Lösungen erkunden
Ressourcen Was ist Middleware?

Middleware beschleunigt die Entwicklung verteilter Anwendungen durch Vereinfachung der Konnektivität zwischen Anwendungen, Anwendungskomponenten und Back-End-Datenquellen.

Was sind REST-APIs?

REST-APIs bieten eine flexible, schlanke Möglichkeit zur Integration von Anwendungen und haben sich als die gängigste Methode zur Verbindung von Komponenten in Microservice-Architekturen erwiesen.

Eine Einführung in APIs und Messaging

Erfahren Sie, wann Sie APIs, wann Sie Messaging und wann Sie beides verwenden sollten.

Machen Sie den nächsten Schritt

IBM® Cloud Pak for Integration ist eine hybride Integrationsplattform, die die Funktionalität der KI im geschlossenen Automatisierungskreislauf nutzt, um verschiedene Arten der Integration zu unterstützen. Die Plattform bietet einen umfassenden Satz an Integrationstools in einer einzigen, einheitlichen Umgebung, um Anwendungen und Daten in jeder beliebigen Cloud- oder On-Premises-Umgebung zu verbinden. Die Funktionalität von Cloud Pak for Integration erschließt Geschäftsdatensilos und Assets als APIs, verbindet Cloud- und On-Premises-Apps und schützt die Integrität von Daten während der Übertragung mit Enterprise-Messaging.

IBM Cloud Pak for Integration erkunden