RabbitMQ ist eine Open-Source-Message-Broker-Software, die ursprünglich das AMQP-Protokoll (Advanced Message Queuing Protocol) implementiert, und während es entwickelt und erweitert wurde, um andere Protokolle wie STOMP (Streaming Text Oriented Messaging Protocol) und MQTT (Message Telemetrietransport in Warteschlange stellen).
RabbitMQ ist die Message-Queueing-Software, die das Senden und Empfangen von Nachrichten zwischen verteilten Systemen, Anwendungen und Diensten unterstützt. Es wurde mit der Programmiersprache Erlang geschrieben und unterstützt Client-Schnittstellen und Bibliotheken für alle wichtigen Programmiersprachen, einschließlich Python, NodeJS, Java, PHP usw.
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie den RabbitMQ Cluster auf einem CentOS 7 Server einrichten. Wir werden den RabbitMQ-Cluster mit drei CentOS-Servern einrichten, die RabbitMQ-Verwaltung aktivieren und die HA-Richtlinie für alle Knoten einrichten.
Voraussetzungen
- 3 oder mehr CentOS 7-Server
- 10.0.15.21 node01
- 10.0.15.22 node02
- 10.0.15.23 node03
- Root-Rechte
Was werden wir tun?
- Setup-Hosts-Datei
- Installieren Sie RabbitMQ Server
- RabbitMQ-Verwaltungs-Plugins aktivieren
- Firewalld konfigurieren
- RabbitMQ-Cluster einrichten
- Konfigurieren Sie einen neuen Admin-Benutzer
- Richten Sie die RabbitMQ-Warteschlangenspiegelung ein
- 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 node01 10.0.15.22 node02 10.0.15.23 node03
Speichern und beenden.
Schritt 2 – RabbitMQ Server installieren
In diesem Schritt installieren wir die RabbitMQ Server-Pakete aus dem EPEL-Repository (Extra Packages for Enterprise Linux).
Fügen Sie das EPEL-Repository zum CentOS 7-System hinzu.
sudo yum -y install epel-release
Installieren Sie jetzt RabbitMQ Server auf allen Knoten 'node01', 'node02' und 'node03' mit dem untenstehenden yum-Befehl.
sudo yum -y install rabbitmq-server
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 allen Knotenclustern CentOS 7 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
Und das RabbitMQ-Management wurde aktiviert.
Schritt 4 – Konfigurieren Sie CentOS Firewalld
In diesem Tutorial aktivieren wir den CentOS-Firewalld-Dienst, daher müssen wir den Port öffnen, der vom RabbitMQ-Server verwendet wird.
Wir werden den Port öffnen, der den RabbitMQ-Server „5672“, den Port für die RabbitMQ-Verwaltung „15672“ und die Ports für den RabbitMQ-Cluster „4369, 25672“ verwendet.
Führen Sie die folgenden Firewalld-Befehle aus.
sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent
Laden Sie jetzt firewalld neu und überprüfen Sie alle geöffneten Ports in der Liste.
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Die CentOS-Firewalld-Konfiguration 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 „node01“ auf die anderen Knoten „node02“ und „node03“.
Kopieren Sie die '.erlang.cookie'-Datei mit scp-Befehlen aus dem 'node01'.
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 „node02“ und „node03“ einrichten, um dem Cluster „node01“ beizutreten.
Führen Sie alle untenstehenden Befehle auf den Servern „node02“ und „node03“ 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 „Knoten01“ 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 unten gezeigten Ergebnisse.
Auf dem 'node02'.
Auf dem 'node03'.
Der RabbitMQ-Cluster wurde mit node01, node02 und node03 als Mitgliedern erstellt.
Schritt 6 – Erstellen Sie einen neuen Administrator-Benutzer
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 aus „node01“ 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 unten gezeigte Ergebnis.
Ein neuer RabbitMQ-Benutzer wurde erstellt und der standardmäßige „Gast“-Benutzer wurde gelöscht.
Schritt 7 – RabbitMQ-Setup-Warteschlangenspiegelung
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.
Im Folgenden finden Sie einige Beispiele zu den 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 Richtlinie mit dem Namen „ha-nodes“ ein, bei der alle Warteschlangennamen mit „nodes“ beginnen. wird auf zwei spezifische Knoten „node02“ und „node03“ im Cluster gespiegelt.
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
'{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'
Überprüfen Sie nun alle verfügbaren Richtlinien mit dem folgenden Befehl.
sudo rabbitmqctl list_policies;
Und wenn Sie die Richtlinie entfernen möchten, verwenden Sie den folgenden Befehl.
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 RabbitMQ-Admin-Dashboard wie folgt.
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 den 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 dem CentOS 7-Server wurde erfolgreich abgeschlossen.