Wie man RabbitMQ Cluster unter CentOS 7 einrichtet

RabbitMQ ist eine Open Source Message-Broker Software, die ursprünglich das AMQP (Advanced Message Queuing Protocol) Protokoll implementiert hat, und während es entwickelt und erweitert wurde, um andere Protokolle wie STOMP (Streaming Text Oriented Messaging Protocol) und MQTT (Message Queuing Telemetry Transport) zu unterstützen.

RabbitMQ ist die Message-Queueing-Software, die Unterstützung für das Senden und Empfangen von Nachrichten zwischen verteilten Systemen, Anwendungen und Diensten bietet. Es ist mit der Programmiersprache Erlang geschrieben und unterstützt Client-Schnittstellen und Bibliotheken für alle wichtigen Programmiersprachen wie Python, NodeJS, Java, PHP etc.

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 Hilfe von drei CentOS-Servern einrichten, das RabbitMQ-Management aktivieren und die HA-Richtlinie für alle Knoten einrichten.

Voraussetzungen

  • 3 oder mehr CentOS 7 Server
    • 10.0.15.21 Knoten01
    • 10.0.15.22 Knoten02
    • 10.0.15.23 knoten03
  • Root-Privilegien

Was werden wir tun?

  1. Setup-Hosts-Datei
  2. RabbitMQ Server installieren
  3. RabbitMQ Management Plugins aktivieren
  4. Konfigurieren Sie Firewalld
  5. Einrichtung RabbitMQ-Cluster
  6. Einen neuen Admin-Benutzer konfigurieren
  7. RabbitMQ-Warteschlangen-Spiegelung einrichten
  8. Prüfung

Schritt 1 – Einrichten der Hosts-Datei

In diesem Schritt werden wir die Datei ‚/etc/hosts‘ auf allen Servern bearbeiten und jede Server-IP-Adresse als Hostname abbilden.

Editieren Sie die Datei ‚/etc/hosts‘ mit dem vim-Editor.

sudo vim /etc/hosts

Fügen Sie nun die folgende Konfiguration dort 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 werden wir die RabbitMQ Server Pakete aus dem EPEL (Extra Packages for Enterprise Linux) Repository installieren.

Fügen Sie das EPEL-Repository zum CentOS 7-System hinzu.

sudo yum -y install epel-release

Installieren Sie nun RabbitMQ Server auf allen Knoten ’node01′, ’node02′ und ’node03′ mit dem yum Befehl unten.

sudo yum -y install rabbitmq-server

Und nachdem die Installation abgeschlossen ist, starten Sie den RabbitMQ-Dienst und ermöglichen es ihm, jederzeit beim Systemstart zu starten.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

Der RabbitMQ Server wurde auf allen Knoten-Clustern von CentOS 7 installiert.

Schritt 3 – RabbitMQ Management Plugins aktivieren

In diesem Schritt werden wir die RabbitMQ Management Plugins aktivieren. Es ist eine Schnittstelle, die es Ihnen erlaubt, RabbitMQ Server vom Webbrowser aus zu überwachen und zu handhaben, der auf dem Standard-TCP-Port ‚15672‘ läuft.

Aktivieren Sie die RabbitMQ Management-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.

RabbitMQ Management Plugins aktivieren

Schritt 4 – CentOS Firewalld konfigurieren

In diesem Tutorial werden wir den CentOS-Firewalld-Service aktivieren, also müssen wir den Port öffnen, der vom RabbitMQ-Server verwendet wird.

Wir werden den Port öffnen, der den RabbitMQ-Server ‚5672‘ verwendet, den Port für das RabbitMQ-Management ‚15672‘ und die Ports für den RabbitMQ-Cluster ‚4369, 25672‘.

Führen Sie die folgenden Firewalld-Kommandos 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

Nun laden Sie Firewalld neu und überprüfen Sie alle geöffneten Ports in der Liste.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

CentOS Firewalld konfigurieren

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 ‚.erlang.cookie‘-Datei auf allen Knoten gleich ist. Wir werden die ‚.erlang.cookie‘ Datei im ‚/var/lib/rabbitmq‘ Verzeichnis von ’node01′ zu den anderen Knoten ’node02′ und ’node03′ kopieren.

Kopieren Sie die ‚.erlang.cookie‘ Datei mit Hilfe von scp-Befehlen aus dem ’node01′.

scp /var/lib/rabbitmq/.erlang.cookie root@node02:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@node03:/var/lib/rabbitmq/

Stellen Sie sicher, dass auf beiden Servern kein Fehler vorliegt.

RabbitMQ-Cluster einrichten

Als nächstes müssen wir ’node02′ und ’node03′ einrichten, um dem Cluster ’node01′ beizutreten.

Führen Sie alle folgenden 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

Nun lassen Sie RabbitMQ Server auf beiden Knoten dem Cluster auf ’node01′ beitreten, dann starten Sie die Anwendung.

sudo rabbitmqctl join_cluster rabbit@node01
sudo rabbitmqctl start_app

Nachdem es abgeschlossen ist, überprüfen Sie den RabbitMQ-Cluster-Status.

sudo rabbitmqctl cluster_status

Und Sie erhalten die Ergebnisse wie unten gezeigt.

Auf dem ‚Node02‘.

Knoten 02

Auf dem ‚Node03‘.

Knoten 03

Der RabbitMQ-Cluster wurde erstellt, mit node01, node02 und node03 als Mitglieder.

Schritt 6 – Erstellen eines neuen Administrator-Benutzers

In diesem Tutorial werden wir einen neuen Admin-Benutzer für unseren RabbitMQ-Server anlegen und den Standard-Benutzer ‚Gast‘ löschen. Wir werden einen neuen Benutzer aus ’node01′ erstellen, und dieser wird automatisch auf alle Knoten im Cluster repliziert.

Fügen Sie einen neuen Benutzer namens ‚hakase‘ mit dem Passwort ‚aqwe123@‘ hinzu.

sudo rabbitmqctl add_user hakase aqwe123@

Richten Sie den Benutzer ‚hakase‘ als Administrator ein.

sudo rabbitmqctl set_user_tags hakase administrator

Und erteile dem ‚hakase‘-Benutzer die Erlaubnis, alle vhosts zu modifizieren, zu schreiben und zu lesen.

sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

Löschen Sie nun den Standardbenutzer ‚Gast‘.

sudo rabbitmqctl delete_user guest

Und überprüfen Sie alle verfügbaren Benutzer.

sudo rabbitmqctl list_users

Und Sie erhalten das Ergebnis wie unten dargestellt.

RabbitMQ Admin-Benutzer anlegen

Ein neuer RabbitMQ-Benutzer wurde angelegt und der Standard-Gastbenutzer wird gelöscht.

Schritt 7 – RabbitMQ Setup-Warteschlange spiegeln

Dieses Setup ist notwendig, wir müssen den ‚ha policy‘-Cluster für die Queue-Spiegelung und die Replikation auf alle Cluster-Knoten konfigurieren. Wenn der Knoten, der den Warteschlangen-Master beherbergt, ausfällt, wird der älteste Spiegel zum neuen Master befördert, solange er synchronisiert ist, abhängig von den Richtlinien ‚ha-mode‘ und ‚ha-params‘.

Nachfolgend einige Beispiele für die RabbitMQ ha-Politik.

Richten Sie eine ha-Richtlinie namens ‚ha-all‘ ein, die alle Warteschlangen auf dem RabbitMQ-Cluster auf alle Knoten auf dem Cluster spiegelt.

sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

Richten Sie eine ha-Richtlinie mit dem Namen „ha-two“ ein, wobei alle Queue-Namen mit „two.“ beginnen und auf die beiden Knoten des Clusters gespiegelt werden.

sudo rabbitmqctl set_policy ha-two "^two\." \
   '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

Richten Sie eine ha-Richtlinie mit dem Namen „ha-Knoten“ ein, wobei der Name aller Warteschlangen mit „Knoten“ beginnt. Diese Richtlinie wird auf zwei bestimmte Knoten „node02“ und „node03“ auf dem Cluster gespiegelt.

sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
   '{"ha-mode":"nodes","ha-params":["rabbit@node02", "rabbit@node03"]}'

Ü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

RabbitMQ Setup-Warteschlangen-Spiegelung

Schritt 8 – Prüfung

Öffnen Sie Ihren Webbrowser und geben Sie die IP-Adresse des Knotens mit dem Port ‚15672‘ ein.

http://10.0.15.21:15672/

Geben Sie den Benutzernamen ‚hakase‘ mit dem Passwort ‚aqwe123@‘ ein.

RabbitMQ Anmeldung

Und Sie erhalten das RabbitMQ Admin-Dashboard wie unten dargestellt.

RabbitMQ Dashboard

Der Status aller Cluster-Knoten ist aufnahmebereit.

Klicken Sie nun auf das Menü ‚Admin‘ und klicken Sie auf das Menü ‚Benutzer‘ auf der Seite.

Admin-Menü

Und Sie bekommen den Hakase-Benutzer auf die Liste.

Klicken Sie nun auf das Menü ‚Admin‘ und klicken Sie auf das Menü ‚Policies‘ auf der Seite.

Politiken

Und Sie erhalten alle RabbitMQ ha Richtlinien, die wir erstellt haben.

Die Installation und Konfiguration von RabbitMQ Cluster auf dem CentOS 7 Server wurde erfolgreich abgeschlossen.

Hinweis

Das könnte Dich auch interessieren …