Eine Message-Queue ist ein Bestandteil von Messaging-Middleware-Lösungen, die es unabhängigen Anwendungen und Diensten ermöglicht, Informationen auszutauschen.
Nachrichtenwarteschlangen speichern „Nachrichten“ oder Datenpakete, die Anwendungen für andere Anwendungen in der Reihenfolge ihrer Übermittlung erstellen, bis die konsumierende Anwendung sie verarbeiten kann. Auf diese Weise können Nachrichten sicher warten, bis die empfangende Anwendung bereit ist. Wenn also ein Problem mit dem Netzwerk oder der empfangenden Anwendung auftritt, gehen die Nachrichten in der Nachrichtenwarteschlange nicht verloren.
Dieses Modell, das als asynchrones Messaging bezeichnet wird, verhindert Datenverluste und ermöglicht es, dass Systeme auch dann fortfahren zu funktionieren, wenn Prozesse oder Verbindungen ausfallen. Dies ermöglicht es Entwicklern, Prozesse und Anwendungen voneinander zu trennen und ihre Kommunikation in sich geschlossen und ereignisgesteuert zu halten, um die Architektur zuverlässiger zu machen.
Message-Queues sind in Messaging-Lösungen über mehrere Bereitstellungsarten verfügbar, einschließlich optimierter physischer Geräte, Cloud-Services, Mainframes und als Software.
Lösungen für Nachrichtenwarteschlangen sind in vielen Branchen weit verbreitet. Sie bieten Entwicklern und Systemadministratoren eine Reihe von Vorteilen, darunter die folgenden:
Die heutigen Computerumgebungen in Unternehmen sind komplex und stark dezentralisiert. Messaging erleichtert die Integration von Anwendungen und Diensten auf verschiedenen Plattformen, indem es ein einziges, leistungsfähiges und sicheres gemeinsames Messaging-Backbone bietet. Dies schützt vor Datenverlusten und stellt sicher, dass die Systeme auch bei instabiler Verbindung fortzufahren.
Nachrichtenwarteschlangen eignen sich hervorragend für die Integration von lokalen Backend-Systemen mit Cloud-Services. In Cloud-Architekturen werden Anwendungen oft in kleine, unabhängige Komponenten unterteilt. Dies macht es einfacher, sie zu entwerfen und zu programmieren, aber auch ihre Leistung zu verwalten. Nachrichtenwarteschlangen ermöglichen es diesen entkoppelten Cloud-Anwendungen, miteinander oder mit lokalen Systemen zu kommunizieren.
Die Warteschlange für Nachrichten erhöht die Ausfallsicherheit der Architektur, da die Nachrichten persistent sein können. Das bedeutet, dass sie auf der Festplatte gespeichert werden, bis der Dienst, der die Nachricht erhält, die Verarbeitung bestätigt. Messaging-Warteschlangen können in Szenarien eingesetzt werden, die ein hohes Maß an Sicherheit, Fehlertoleranz und Genauigkeit erfordern, z. B. bei der Verarbeitung von Finanztransaktionen, bei der Buchung von Flugreisen oder bei der Aktualisierung von Patientendaten im Gesundheitswesen.
Message-Queues können auch verwendet werden, um Anwendungen und Systemen, die sich in verschiedenen Clouds (ob 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 Message-Queue erhöht die Fehlertoleranz und kann verhindern, dass Daten in geografisch und technisch verteilten Systemen dupliziert werden oder verloren gehen. Da jeder Dienst innerhalb des Systems entkoppelt oder logisch von den anderen getrennt ist, kann jeder Dienst fortfahren, wenn andere Dienste oder Anwendungen ausfallen oder blockieren.
Message-Queues funktionieren über verteilte Anwendungen wie mobil, IoT und traditionelle Transaktionssystemdatensätze. Sie unterstützen außerdem verschiedene Plattformen, wie z. B. Virtual Machines und Container, und ermöglichen die Integration zwischen Altlast-Anwendungen und den neuesten Lösungen von heute.
Message-Queues verwenden ein Punkt-zu-Punkt-Messaging-Muster, bei dem eine Anwendung (der Absender genannt) eine Nachricht an die Warteschlange sendet und eine andere Anwendung (der Empfänger genannt) die Nachricht aus der Warteschlange abruft und verwendet. Zwischen Absender und Verbraucher sollte eine enge und persönliche Beziehung bestehen und jede Nachricht sollte nur einmal konsumiert werden.
Wenn Ihre Anwendungen die Verteilung von Nachrichten an mehrere Parteien erfordern, können entweder mehrere Nachrichtenwarteschlangen kombiniert oder ein Publish/Abonnieren-Messaging-Modell (Pub/Sub) verwendet werden.
Beim Pub/Sub-Messaging wird die Anwendung, die die Nachricht produziert, als Herausgeber bezeichnet, und die Anwendungen, die sie verwenden, sind die Abonnenten. Jede Nachricht wird zu einem Thema veröffentlicht, und jede Anwendung, die sich diesem Thema abonniert, erhält eine Kopie aller Nachrichten, die zu diesem Thema veröffentlicht wurden.
Die meisten Messaging-Middleware-Lösungen unterstützen sowohl die Nachrichtenwarteschlange (Punkt-zu-Punkt) als auch das Pub/Sub-Messaging-Modell.
Ein Message Bus, eine Art Enterprise Service Bus oder ESB, ermöglicht Diensten den allgegenwärtigen Zugriff auf Daten und stellt gleichzeitig sicher, dass sie entkoppelt bleiben und unabhängig innerhalb einer verteilten Systemarchitektur funktionieren. Wenn Sie einen Message Bus verwenden, müssen alle Dienste oder Anwendungen gemeinsame Datentypen, einen gemeinsamen Befehlssatz und gemeinsame Kommunikationsprotokolle teilen (obwohl sie in unterschiedlichen Sprachen geschrieben sein können). Verbraucher können bestimmen, wie sie Nachrichten verwenden.
Wenn entkoppelte Anwendungen über einen Message Bus kommunizieren sollen, müssen die Nachrichten so transformiert werden, dass sie alle denselben Typ haben. Im Gegensatz dazu transportieren Nachrichtenwarteschlangen Nachrichten, unabhängig davon, ob es sich um Nachrichten desselben oder unterschiedlicher Typen handelt.
Anwendungen können direkt über Webservices oder APIs kommunizieren, die auf Standardprotokollen wie SOAP (Simple Object Access Protocol) oder HTTP basieren, anstatt über Messaging-Middleware. Webservices werden häufig in verteilten Systemen verwendet, die relativ einfach und leicht zu implementieren sind, was sie in bestimmten Anwendungsfällen und Szenarien zu einer praktikablen Alternative zu Message-Queues macht.
Im Gegensatz zu Nachrichtenwarteschlangen können Webdienste jedoch keine Nachrichtenzustellung garantieren. Wenn der Server oder die Verbindung fehlschlägt, müssen Sie die Möglichkeit schaffen, den Fehler im Client zu bearbeiten. Außerdem mangelt es Webdiensten an Pub/Sub-Verteilungsmodellen. Messaging-Middleware bietet eine höhere Fehlertoleranz und ist besser in der Lage, starken Datenverkehr oder Aktivitätsspitzen zu bewältigen.
Mehr darüber, wann APIs und wann Messaging oder beide verwendet werden sollten, erfahren Sie unter „An introduction to APIs and messaging“.
Datenbanken können in bestimmten Situationen als Alternative zu Message-Queues verwendet werden. Sie dienen jedoch unterschiedlichen Zwecken und sind in den meisten Fällen nicht ohne weiteres austauschbar. Datenbanken werden am häufigsten zur Speicherung verwendet und ermöglichen es Ihnen, immer wieder auf dieselben Informationen zuzugreifen. Message-Queues können nicht für Speicherzwecke verwendet werden. Sobald eine Nachricht konsumiert wurde, wird sie aus der Warteschlange gelöscht.
Das Designen von Funktionen, die einer Message-Queue ähneln, in einer Datenbank ist möglich, erfordert aber viel Codierungsaufwand und -wissen. Datenbanken können nur zur Replikation einfacher Warteschlangenstrukturen verwendet werden und sind nicht für größere Anwendungen skalierbar.
Weitere Informationen zu Datenbanken und ihren Funktionen finden Sie unter „A Brief Overview of the Database Landscape“.
Die Message-Queue wird traditionell von dedizierten Teams innerhalb der IT verwaltet. Als „As-a-Service“-Bereitstellung ermöglicht die Verwendung einer in der Cloud-gehosteten Message-Queue es Einzelpersonen oder Line-of-Business (LOB) Nutzern, Änderungen an der Messaging-Infrastruktur selbst über ein Portal anzufordern, was die Flexibilität erhöhen kann.
Message-Queuing-as-a-Service funktioniert natürlich gut in serverlosen oder Microservices-Architekturen, die in der cloudnativen Entwicklung üblich sind. Da sie in einem cloud-gehosteten Servicemodell angeboten wird, kümmert sich der Cloud-Provider um die gesamte Bereitstellung, Installation und Wartung Ihrer Messaging-Infrastruktur, und sie wird in der Cloud gehostet.
Diese Tutorials helfen Ihnen, wenn Sie neu in der Entwicklung von Anwendungen sind, die über IBM MQ kommunizieren:
Diese zusätzlichen Ressourcen verschaffen Ihnen einen umfassenderen Überblick:
Ermöglichen Sie eine dynamische, skalierbare Integration, die sich an sich ändernde Geschäftsanforderungen anpasst. KI-gestützte, API-basierte Automatisierung
Erschließen Sie Ihr Geschäftspotenzial mit IBM Integrationslösungen, die Anwendungen und Systeme für den schnellen und sicheren Zugriff auf wichtige Daten verbinden.
Nutzen Sie das volle Potenzial der Hybrid Cloud im Zeitalter der agentischen KI