Hochverfügbarkeit
IBM Cloud® Messages for RabbitMQ ist ein Nachrichtenservice für verwaltete Clouds, der vollständig in IBM Cloud-Umgebungen integriert ist. Der Nachrichtenbroker, der Speicher und die unterstützende Infrastruktur werden in IBM Cloud ausgeführt.
Konfiguration des RabbitMQ-Clusters
Von Messages for RabbitMQ werden Funktionen für Replikation, Failover und Hochverfügbarkeit bereitgestellt, mit denen die Datenbanken und Daten bei der Wartung der Infrastruktur sowie Upgrades und Ausfällen geschützt werden sollen. Die Bereitstellungen enthalten einen Cluster mit drei Knoten, in dem die Statusangaben für Benutzer, virtuelle Hosts, Warteschlangen, Austauschvorgänge, Bindungen, Laufzeitparameter und weitere verteilte Statusangaben auf allen drei Knoten gemeinsam genutzt werden. Wenn ein Knoten ausfällt, wird der Knoten entweder gelöscht oder erneut gestartet; anschließend wird der Knoten oder ein neuer Knoten erneut mit dem Cluster synchronisiert. Ihre Implementierung bleibt für die Verarbeitung von Nachrichten während der Resynchronisation verfügbar, obwohl es sich um einen speicherintensiven Prozess handelt. Weitere Informationen finden Sie auf der Seite Leistung .
RabbitMQ -Ressourcenaspekte
Als Nachrichtenbroker, der in Erlang implementiert ist, hängt RabbitMQ bei der Planung seiner Prozesse von CPU-Cores ab. Wenn zu wenige Kerne verfügbar sind, um diese Prozesse auszuführen, kann die Leistung beeinträchtigt werden. Wenn zu wenige CPU-Ressourcen für die Verarbeitung verfügbar sind, schließt RabbitMQ Verbindungen. Ziehen Sie cpu-contention in Betracht und wählen Sie eine Ressourcenkonfiguration aus, die genügend CPU-Kerne für RabbitMQ bereitstellt, das als Produktionssystem ausgeführt wird. Die Verwendung dedizierter CPU-Ressourcen in Ihrer RabbitMQ -Bereitstellung verhindert auch die Auswirkungen von verrauschten Nachbarn auf Ressourcen wie CPU und Hauptspeicher.
Konfiguration der Warteschlange für Hochverfügbarkeit
Der virtuelle Standardhost ist so konfiguriert, dass seine Warteschlangen auf allen Knoten im Cluster gespiegelt werden, um Hochverfügbarkeitbereitzustellen. Die
Hochverfügbarkeit in RabbitMQ wird durch Richtliniefestgelegt. Sie können die Richtlinie in der RabbitMQ -Managementbenutzerschnittstelle, der HTTPS-API oder in rabbitmqadmin
anzeigen, wenn Sie sich mit dem Administratorkontoanmelden.

Sie können die Hochverfügbarkeit ändern, indem Sie eine Richtlinie hinzufügen und ihr eine höheren Priorität zuweisen, die Standardrichtlinie kann jedoch nicht entfernt werden. Für zusätzliche virtuell Hosts ist standardmäßig keine Richtlinie für hohe Verfügbarkeit festgelegt. Sie sollten allen virtuellen Hosts eine Hochverfügbarkeitsrichtlinie hinzufügen.
Quorumwarteschlangen
Die Hochverfügbarkeit kann mit Quorumwarteschlangenverwaltet werden. Die Verwendung von Quorumwarteschlangen kann die Hochverfügbarkeit einer Implementierung erheblich verbessern, insbesondere in Fällen, in denen Warteschlangen langfristig vorhanden sind und ihre Permanenz wichtiger ist als andere Funktionen. Von Quorumwarteschlangen wird die Hochverfügbarkeit durch Beibehalten eines Quorums verwaltet, von dem der Raft-Konsensalgorithmus verwendet wird; hierbei stimmen das aktuelle Replikat und die meisten der Replikate mit dem Inhalt der Warteschlange überein. Wenn auf dem Knoten Probleme auftreten, wird von den Replikaten das nächste primäre ausgewählt.
Die RabbitMQ Documentation behandelt die Anwendungsfälleund die Implementierung von Quorumwarteschlangen in Ihrem Cluster.
Gespiegelte Warteschlangen
Während Quorumwarteschlangen bevorzugt werden, verwendet die Standardkonfiguration in RabbitMQ 4 und früheren Versionen gespiegelte Warteschlangen. Gespiegelte Warteschlangen werden konfiguriert, wobei jede Warteschlange ein primäres Member auf einem Member des Clusters enthält und Spiegel der Warteschlangen auf den anderen Member des Clusters vorhanden sind. Nachrichten, die in der Warteschlange veröffentlicht werden, werden zuerst an das primäre gesendet und anschließend auf den gespiegelten repliziert. Wenn auf dem primären Knoten Probleme auftreten, wird die älteste synchronisierte Spiegelung zur primären hochgestuft.
Hochverfügbarkeit für eine Anwendung
Anwendungen, die über Netze und Cloud-Services kommunizieren, sind temporären Verbindungsfehlern ausgesetzt. Da Messages for RabbitMQ auch ein verwalteter Service ist, werden reguläre Aktualisierungen und Wartungen der Datenbank im Rahmen der normalen Unternehmensaktivitäten durchgeführt. Da solche Aktivitäten zu einer kurzen Delle der Verbindung führen können, können kurze Unterbrechungen der Verbindung auftreten.
Deswegen ist es sinnvoll, die Ausführung der Anwendungen so zu konzipieren, dass eine temporäre Unterbrechung der Verbindung zur Bereitstellung oder zu IBM Cloud verarbeitet werden kann.
Die RabbitMQ -Dokumentation enthält im Abschnitt Anwendungen einen Überblick darüber, welche Arten von Aktionen Sie ausführen können, um Ihre Anwendungen im Produktionsprüflisteleistungsfähig und stabil zu machen. An dieser Stelle sind auch einige allgemeine Ratschläge zur Verwaltung und Wiederherstellung von Verbindungen aufgeführt.
Von RabbitMQ und den RabbitMQ-Treibern werden unterschiedliche Funktionen unterstützt, die das Entwickeln ausfallsicherer Anwendungen erleichtern.
- Consumer Empfangsbestätigungen und Publisher bestätigt -um sicherzustellen, dass Nachrichten gesendet und empfangen werden, und um Situationen abzufangen und wiederherzustellen, in denen sie nicht vorhanden sind.
- Heartbeats und TCP Keepalives -Verwenden Sie Heartbeat-und Keepalive-Parameter, wenn Ihre Anwendungsverbindung Zombieverbindungen erkennen und verhindern kann.
- Benachrichtigungen über Konsumentenabbruch -Erkennen und Verarbeiten von Instanzen, bei denen ein Konsument die Verarbeitung aus einer Warteschlange stoppt.
Messages for RabbitMQ wird auch mit dem Shovel Plug-ingeliefert. Von Shovels können das Verbinden, das Lesen und Schreiben von Nachrichten, Verbindungsfehler und erneute Veröffentlichungen verarbeitet werden.
Mit einer Nichtverfügbarkeit von Datenbanken oder einer Unterbrechung von Verbindungen für mehrere Minuten muss nicht gerechnet werden. Wenn Verbindungsunterbrechungen mit einer Länge von über einer Minute auftreten, öffnen Sie ein Support-Ticket mit Details, damit wir den Fall untersuchen können.
Messages for RabbitMQ-Verbindungsgrenzwerte
Bei der Bereitstellung hat Messages for RabbitMQ vier verschiedene Endpunkte und legt die maximale Anzahl der Verbindungen pro Knoten und für jeden Endpunkt wie folgt fest:
- HTTPS: 1024 x 3 Knoten = 3072
- AMQPS: 20000 x 3 Knoten = 60000
- MQTTS: 20000 x 3 Knoten = 60000
- STOMPS: 20000 x 3 Knoten = 60000
Wenn die Anzahl der Verbindungen zur Datenbank den Verbindungsgrenzwert überschreitet, schlagen neue Verbindungen fehl und geben einen Fehler zurück.
Überwachung für Hochverfügbarkeit
Da Messages for RabbitMQ mit der Integration in IBM Log Analysis bereitgestellt wird, können Sie Live-Protokolle und Langzeit-Protokolle anzeigen.
Das Überprüfen der Protokolle einer Bereitstellung erleichtert die Überwachung des Hochverfügbarkeitsstatus und der Replikation in der Bereitstellung. Wenn im Zusammenhang mit den Anwendungen persistente Probleme auftreten, können Protokolle auch einen Einblick in die Datenbanken bieten, falls Verbindungsfehler oder Unterbrechungen auftreten.
Handbuch zur Zuverlässigkeit für RabbitMQ
Die RabbitMQ-Dokumentation bietet einen hervorragenden Leitfaden zur Zuverlässigkeit, der eine Vielzahl von Themen abdeckt, die sich darauf beziehen, dass Ihr Cluster funktioniert und Ihre Daten ausfallsicher sind. Außerdem werden Funkionen erläutert, mit denen der Benutzer die Bereitstellung sowie die Verbindungen, Warteschlangen und Nachrichten überwachen kann, um einen reibungslosen Betrieb zu gewährleisten.
Ressourcen zu Hochverfügbarkeit, Disaster-Recovery und SLA
In Messages for RabbitMQ-Bereitstellungen werden die Begriffe HA, DR und SLA für IBM Cloud-Datenbanken entsprechend verwendet.