Einen RabbitMQ-Cluster in 5 Minuten erstellen
Diese Anleitung begleitet Sie bei der Erstellung Ihres ersten RabbitMQ-Clusters in der Hikube-Konsole bis zum Senden einer ersten Nachricht.
Ziele
Am Ende dieser Anleitung haben Sie:
- Einen betriebsbereiten RabbitMQ-Cluster in Ihrem Projekt
- Einen VHost und einen Benutzer mit seinen Rechten
- Das Passwort dieses Benutzers und die Verbindungsadresse des Clusters
- Eine erste mit einem AMQP-Client veröffentlichte Nachricht
Voraussetzungen
- Ein Hikube-Konto und ein Projekt (siehe den Hikube-Schnellstart)
- Eine ausreichende Projekt-Quota für den Cluster (CPU, Arbeitsspeicher und Speicher)
- Python 3 mit installiertem Modul
pikafür den Test in Schritt 5 (pip install pika)
Schritt 1: Den Erstellungsassistenten öffnen
- Melden Sie sich in der Hikube-Konsole an und wählen Sie Ihr Projekt aus.
- Öffnen Sie im Seitenmenü DB & Messaging → RabbitMQ. Die Seite RabbitMQ Clusters wird angezeigt.
- Klicken Sie auf Create a cluster. Der Assistent Create a RabbitMQ cluster öffnet sich.
Schritt 2: Den Cluster konfigurieren und erstellen
Der Assistent umfasst fünf Schritte. Ein Banner zeigt die geschätzten Kosten und im Schritt Configuration den Quota-Verbrauch des Projekts an.
General
Geben Sie den Cluster Name ein (standardmäßig wird ein Name vorgeschlagen). Er muss 3 bis 16 Zeichen umfassen: Kleinbuchstaben, Ziffern und Bindestriche, mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Ziffer enden. Beispiel: rabbit-demo.
Configuration
| Feld | Empfohlener Wert für diese Anleitung | Hinweis |
|---|---|---|
| RabbitMQ Version | 4.2 | Angebotene Versionen: 4.2, 4.1, 4.0, 3.13 |
| Preset | s1.small — 1 CPU / 2Gi | Kein Preset ist vorausgewählt; nach der Erstellung nicht änderbar |
| Disk size (GB) | 10 | Kapazität pro Knoten |
| Number of replicas | 3 (Max High Availability) | 1 (Standalone), 3 oder 5; nach der Erstellung nicht änderbar |
| External access | Aktiviert | Macht den Cluster im Internet erreichbar; erforderlich für den Test von Ihrem Rechner aus |
Wenn die Speicher-Quota des Projekts überschritten ist, zeigt die Konsole „Storage quota exceeded for this project“ an und die Schaltfläche Next bleibt inaktiv. Verringern Sie die Größe oder die Anzahl der Replicas oder lassen Sie die Quota des Projekts erhöhen.
VHosts
Geben Sie einen VHost Name ein (zum Beispiel demo; Kleinbuchstaben, Ziffern und Bindestriche, beginnend mit einem Buchstaben und endend mit einem Buchstaben oder einer Ziffer) und klicken Sie auf Add. Mindestens ein VHost ist erforderlich, um zum nächsten Schritt zu gelangen.
Users
- Geben Sie unter Add a new user den Username ein (zum Beispiel
app-user; Kleinbuchstaben, Ziffern und Bindestriche). - Wählen Sie unter VHost access für den VHost
demodie Option Administrator. - Klicken Sie auf Add user.
Mindestens ein Benutzer ist erforderlich, um fortzufahren.
Summary
Prüfen Sie die Zusammenfassung (Name, Version, Preset, Replicas, Größe, Netzwerk Public oder Private, geschätzte Kosten, Anzahl der zu erstellenden VHosts und Benutzer) und klicken Sie dann auf Create cluster.
Done: das Passwort kopieren
Am Ende der Bereitstellung zeigt der Bildschirm Done die Meldung Creation complete! und für jeden erstellten Benutzer sein Password an.
Kopieren Sie das Passwort sofort und bewahren Sie es in einem Passwort-Manager auf. Es wird nach dem Verlassen dieses Bildschirms nicht mehr angezeigt. Bei Verlust generieren Sie mit der Aktion Change Password ein neues (siehe VHosts und Benutzer verwalten).
Klicken Sie anschließend auf Finish, um zur Liste der Cluster zurückzukehren.
Schritt 3: Den Status des Clusters prüfen
- In der Liste RabbitMQ Clusters erscheint der Cluster mit dem Status Creating und anschließend Ready, sobald er betriebsbereit ist.
- Klicken Sie auf den Cluster, um seine Detailseite zu öffnen:
- General Information: Version, Replicas, Volume Size;
- VHosts und Users: die vom Assistenten erstellten Elemente;
- Connection: die Adressbereiche Internal und External sowie der Status.
Schritt 4: Zugangsdaten abrufen
Für die Verbindung benötigen Sie:
| Information | Fundort |
|---|---|
| Username | Abschnitt Users der Clusterseite |
| Password | Im Bildschirm Done des Assistenten kopiert (Schritt 2) |
| VHost | Abschnitt VHosts der Clusterseite |
| Host | Abschnitt Connection: Bereich Internal aus dem Projekt, Bereich External aus dem Internet |
| Port | 5672 (AMQP) |
Der Bereich Internal zeigt immer den internen Host des Clusters an, der von den VMs und Kubernetes-Clustern des Projekts aus erreichbar ist. Der Bereich External zeigt die öffentliche Adresse an, wenn der External Access aktiviert ist; andernfalls zeigt er Disabled an, und „Waiting for allocation…“, solange die Adresse nicht zugewiesen ist. Kopieren Sie die Adresse mit der Kopierschaltfläche.
Der Bildschirm Done des Assistenten zeigt außerdem, sofern der Host bereits bekannt ist, eine Verbindungszeichenfolge der folgenden Form an:
amqp://app-user:<password>@<host>:5672
Schritt 5: Verbindung und Test
Erstellen Sie das folgende Skript und ersetzen Sie dabei Host und Passwort durch Ihre Werte:
import pika
credentials = pika.PlainCredentials('app-user', '<password>')
parameters = pika.ConnectionParameters(
host='<host>',
port=5672,
virtual_host='demo',
credentials=credentials,
)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()
# Deklaration einer Quorum Queue (auf die Knoten des Clusters repliziert)
channel.queue_declare(queue='test', durable=True, arguments={'x-queue-type': 'quorum'})
# Senden einer Nachricht
channel.basic_publish(exchange='', routing_key='test', body='Hello Hikube!')
print("Nachricht erfolgreich gesendet")
# Lesen der Nachricht
method, properties, body = channel.basic_get(queue='test', auto_ack=True)
print(f"Nachricht empfangen: {body.decode()}")
connection.close()
python test_rabbitmq.py
Erwartetes Ergebnis:
Nachricht erfolgreich gesendet
Nachricht empfangen: Hello Hikube!
Schritt 6: Schnelle Fehlerbehebung
| Symptom | Häufige Ursachen | Maßnahme |
|---|---|---|
| Der Cluster bleibt im Status Creating | Bereitstellung läuft | Warten Sie einige Minuten; ändert sich der Status nicht, lesen Sie die Fehlerbehebung |
| Status Error | Die Plattform konnte die Erstellung oder die letzte Änderung des Clusters nicht anwenden | Wenden Sie sich an den Support und geben Sie den Namen und die Kennung des Clusters an |
ACCESS_REFUSED beim Verbinden | Falsches Passwort oder Benutzer ohne Rechte auf dem VHost | Prüfen Sie den VHost unter Manage Access; generieren Sie bei Bedarf das Passwort neu |
| Verbindung nicht möglich (Timeout) | Externer Zugriff deaktiviert, falscher Host oder Port | Prüfen Sie den Bereich External im Abschnitt Connection (aus dem Projekt den Bereich Internal); der AMQP-Port ist 5672 |
NOT_FOUND - no vhost | Falscher VHost-Name im Client | Verwenden Sie exakt den im Abschnitt VHosts angezeigten Namen |
Schritt 7: Bereinigung
- Öffnen Sie die Detailseite des Clusters und klicken Sie auf Delete (oder öffnen Sie in der Liste das Aktionsmenü des Clusters und wählen Sie Delete cluster).
- Geben Sie im Bestätigungsfenster den exakten Namen des Clusters in Resource name to confirm ein.
- Klicken Sie auf Permanently delete.
Diese Aktion ist unwiderruflich: Der Cluster, seine VHosts, seine Benutzer und alle gespeicherten Nachrichten werden endgültig gelöscht.
Zusammenfassung
Sie haben in der Konsole Folgendes erstellt:
- Einen hochverfügbaren RabbitMQ-Cluster mit 3 Knoten
- Einen VHost und einen Administrator-Benutzer für diesen VHost
- Eine funktionierende AMQP-Verbindung von Ihrem Rechner aus