RabbitMQ ist eine Open-Source-Message-Broker-Software, die ursprünglich das AMQP-Protokoll (Advanced Message Queuing Protocol) implementiert hat und während es entwickelt und erweitert wurde, um andere Protokolle wie STOMP (Streaming Text Oriented Messaging Protocol) und MQTT ( Message Queuing-Telemetrietransport).
Eine Message-Queueing-/Message-Broker-Software wird zum Senden und Empfangen von Nachrichten zwischen verteilten Systemen, Anwendungen und Diensten verwendet. RabbitMQ ist in der Programmiersprache Erlang geschrieben und bietet Unterstützung für Client-Schnittstellen und Bibliotheken für alle wichtigen Programmiersprachen, einschließlich Python, NodeJS, Java, PHP usw.
In diesem Tutorial zeige ich Ihnen, wie Sie einen RabbitMQ-Cluster auf Ubuntu 18.04 Server einrichten. Ich werde einen RabbitMQ-Cluster mit drei Ubuntu-Servern installieren, die RabbitMQ-Verwaltung aktivieren und die HA-Richtlinie für alle Knoten einrichten.
Voraussetzungen
- 3 oder mehr Ubuntu 18.04-Server
- 10.0.15.21 hakase-ubuntu01
- 10.0.15.22 hakase-ubuntu02
- 10.0.15.23 hakase-ubuntu03
- Root-Rechte
Was werden wir tun?
- Setup-Hosts-Datei
- Installieren Sie RabbitMQ Server
- Verwaltungs-Plugins aktivieren
- UFW-Firewall einrichten
- RabbitMQ-Cluster einrichten
- Neuen Administratorbenutzer einrichten
- RabbitMQ-Setup-Warteschlangenspiegelung
- Testen
Schritt 1 - Hosts-Datei einrichten
In diesem Schritt bearbeiten wir die Datei „/etc/hosts“ auf allen Servern und ordnen jede Server-IP-Adresse einem Hostnamen zu.
Bearbeiten Sie die Datei „/etc/hosts“ mit dem vim-Editor.
sudo vim /etc/hosts
Fügen Sie dort nun folgende Konfiguration ein.
10.0.15.21 hakase-ubuntu01 10.0.15.22 hakase-ubuntu02 10.0.15.23 hakase-ubuntu03
Speichern und beenden.
Schritt 2 – RabbitMQ Server installieren
Stellen Sie vor der Installation des RabbitMQ-Servers sicher, dass alle Repositorys aktualisiert sind.
Führen Sie den folgenden Befehl aus.
sudo apt update
sudo apt upgrade
Installieren Sie nun die RabbitMQ-Serverpakete aus dem Ubuntu-Repository mit dem folgenden apt-Befehl.
sudo apt install rabbitmq-server -y
Starten Sie nach Abschluss der Installation den RabbitMQ-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Der RabbitMQ-Server wurde auf Ubuntu 18.04 installiert.
Schritt 3 – RabbitMQ-Verwaltungs-Plugins aktivieren
In diesem Schritt aktivieren wir die RabbitMQ-Management-Plugins. Es ist eine Schnittstelle, mit der Sie den RabbitMQ-Server über den Webbrowser überwachen und verwalten können, der auf dem Standard-TCP-Port „15672“ ausgeführt wird.
Aktivieren Sie die RabbitMQ-Verwaltungs-Plugins, indem Sie den folgenden Befehl ausführen.
sudo rabbitmq-plugins enable rabbitmq_management
Stellen Sie sicher, dass kein Fehler vorliegt, und starten Sie dann den RabbitMQ-Dienst neu.
sudo systemctl restart rabbitmq-server
RabbitMQ Management-Plugins wurden aktiviert.
Schritt 4 – UFW-Firewall einrichten
In diesem Tutorial aktivieren wir die Ubuntu UFW-Firewall. Wir müssen einige Ports öffnen, die vom RabbitMQ-Server verwendet werden.
Fügen Sie den ssh-Dienst zur UFW-Firewall hinzu und aktivieren Sie den Firewall-Dienst.
sudo ufw allow ssh
sudo ufw enable
Fügen Sie nun neue RabbitMQ-TCP-Ports „5672,15672,4369,25672“ hinzu.
sudo ufw allow 5672,15672,4369,25672/tcp
Überprüfen Sie dann die Liste der UFW-Firewall-Ports.
sudo ufw status
Die Konfiguration der Ubuntu UFW-Firewall ist abgeschlossen und wir sind bereit, den RabbitMQ-Cluster einzurichten.
Schritt 5 – RabbitMQ-Cluster einrichten
Um den RabbitMQ-Cluster einzurichten, müssen wir sicherstellen, dass die Datei „.erlang.cookie“ auf allen Knoten gleich ist. Wir kopieren die Datei „.erlang.cookie“ im Verzeichnis „/var/lib/rabbitmq“ von „hakase-ubuntu01“ auf die anderen Knoten „hakase-ubuntu02“ und „hakase-ubuntu03“.
Kopieren Sie die ‚.erlang.cookie‘-Datei mit scp-Befehlen aus ‚hakase-ubuntu01‘.
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
Stellen Sie sicher, dass auf beiden Servern kein Fehler vorliegt.
Als nächstes müssen wir „hakase-ubuntu02“ und „hakase-ubuntu03“ einrichten, um dem Cluster „hakase-ubuntu01“ beizutreten.
Hinweis:
- Führen Sie die folgenden Befehle auf hakase-ubuntu02'- und 'hakase-ubuntu03'-Servern aus.
Starten Sie den RabbitMQ-Dienst neu und stoppen Sie die App.
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app
Lassen Sie nun den RabbitMQ-Server auf beiden Knoten dem Cluster auf ‚hakase-ubuntu01‘ beitreten und starten Sie dann die App.
sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app
Überprüfen Sie nach Abschluss den Status des RabbitMQ-Clusters.
sudo rabbitmqctl cluster_status
Und Sie erhalten die Ergebnisse wie folgt.
Der RabbitMQ-Cluster wurde mit hakase-ubuntu01, hakase-ubuntu02 und hakase-ubuntu03 als Mitgliedern erstellt.
Schritt 6 – Neuen Administratorbenutzer einrichten
In diesem Tutorial erstellen wir einen neuen Admin-Benutzer für unseren RabbitMQ-Server und löschen den Standardbenutzer „guest“. Wir werden einen neuen Benutzer von „hakase-ubuntu01“ erstellen und er wird automatisch auf alle Knoten im Cluster repliziert.
Fügen Sie einen neuen Benutzer namens „hakase“ mit dem Passwort „[email protected]“ hinzu.
sudo rabbitmqctl add_user hakase [email protected]
Richten Sie den Benutzer „hakase“ als Administrator ein.
sudo rabbitmqctl set_user_tags hakase administrator
Und erteilen Sie dem Benutzer „hakase“ die Berechtigung, alle vhosts zu ändern, zu schreiben und zu lesen.
sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"
Löschen Sie nun den Standard-'Gast'-Benutzer.
sudo rabbitmqctl delete_user guest
Und überprüfen Sie alle verfügbaren Benutzer.
sudo rabbitmqctl list_users
Und Sie erhalten das Ergebnis wie folgt.
Ein neuer RabbitMQ-Administratorbenutzer wurde erstellt und der standardmäßige Gastbenutzer wurde gelöscht.
Schritt 7 – RabbitMQ-Setup-Warteschlangenspiegelung
Standardmäßig befinden sich die Inhalte einer Warteschlange innerhalb eines RabbitMQ-Clusters auf einem einzelnen Knoten (dem Knoten, auf dem die Warteschlange deklariert wurde).
Dieses Setup ist ein Muss, wir müssen den Cluster „ha policy“ für die Warteschlangenspiegelung und Replikation auf alle Clusterknoten konfigurieren. Wenn der Knoten, der den Warteschlangen-Master hostet, ausfällt, wird der älteste Spiegel auf den neuen Master hochgestuft, solange er synchronisiert ist, abhängig von den 'ha-mode'- und 'ha-params'-Richtlinien.
Nachfolgend einige Beispiele zu RabbitMQ ha-Richtlinien.
Richten Sie eine Richtlinie namens „ha-all“ ein, die alle Warteschlangen im RabbitMQ-Cluster auf alle Knoten im Cluster spiegeln.
sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'
Richten Sie eine Richtlinie mit dem Namen „ha-two“ ein, bei der alle Warteschlangennamen mit „two“ beginnen. wird auf die beiden Knoten im Cluster gespiegelt.
sudo rabbitmqctl set_policy ha-two "^two\." \
'{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
Richten Sie eine Hochverfügbarkeitsrichtlinie mit dem Namen „ha-nodes“ ein, die alle Warteschlangen enthält, deren Name mit „nodes“ beginnt. Wir werden auf zwei spezifische Knoten „hakase-ubuntu02“ und „hakase-ubuntu03“ im Cluster spiegeln.
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
'{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'
RabbitMQ listet ha-Richtlinien auf.
sudo rabbitmqctl list_policies;
RabbitMQ löscht bestimmte ha-Richtlinien.
sudo rabbitmqctl clear_policy ha-two
Schritt 8 – Testen
Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Knotens mit Port „15672“ ein.
http://10.0.15.21:15672/
Geben Sie den Nutzernamen „hakase“ mit dem Passwort „[email protected]“ ein.
Und Sie erhalten das unten gezeigte RabbitMQ-Admin-Dashboard.
Der Status aller Cluster-Knoten ist betriebsbereit.
Klicken Sie nun auf das Registerkartenmenü „Admin“ und dann auf das Menü „Benutzer“ an der Seite.
Und Sie erhalten Hakase-Benutzer auf der Liste.
Klicken Sie nun auf das Registerkartenmenü „Admin“ und dann auf das Menü „Richtlinien“ an der Seite.
Und Sie erhalten alle von uns erstellten RabbitMQ ha-Richtlinien.
Die Installation und Konfiguration des RabbitMQ-Clusters auf Ubuntu 18.04-Servern wurde erfolgreich abgeschlossen.