Sie können RabbitMQ in einer Clusterkonfiguration auf mindestens drei Standalone-Maschinen einsetzen.
Was Sie wissen sollten
- Das Netz zwischen den Knoten sollte zuverlässig sein, eine hohe Leistungsschwelle haben und eine geringe Latenzzeit aufweisen.
- Wenn Sie Knoten in verschiedenen geografischen Regionen einsetzen, müssen Sie in der Lage sein, die oben genannten Metriken zu garantieren. Die meisten Cloud-Anbieter verfügen beispielsweise über sehr zuverlässige Verbindungen zwischen ihren Rechenzentren.
- Die Knoten sollten sich in verschiedenen Server-Racks befinden, um eine bessere Toleranz zu erreichen, wenn sie vor Ort eingesetzt werden.
- Mehr Knoten verbessern zwar die Ausfallsicherheit, nicht aber die Leistung.
Es wird empfohlen, dass Sie über gründliche Kenntnisse der RabbitMQ-Konfigurationen verfügen. Für Details siehe die offizielle RabbitMQ-Dokumentation.
Hohe Verfügbarkeit in RabbitMQ-Clustern
In einem Cluster mit drei Knoten führt der Ausfall eines Knotens zu Leistungseinbußen, auch wenn die beiden anderen Knoten noch in Betrieb sind.
Die Hochverfügbarkeitskonfiguration von RabbitMQ verwendet den Raft Consensus-Algorithmus, bei dem sich mehrere Server auf Werte einigen müssen.
(N/2)+1
, wobei N
die Anzahl der Knoten ist.
Anzahl der Knoten im Cluster | Anzahl der Knoten, die verfügbar sein müssen | Anzahl der unterstützten Knotenausfälle |
---|---|---|
1 | 1 | 0 |
2 | 2 | 0 |
3 | 2 | 1 |
4 | 3 | 1 |
5 | 3 | 2 |
6 | 4 | 2 |
7 | 4 | 3 |
Je größer der Cluster ist, desto mehr Einfluss hat er auf die Leistung. Wenn Knoten ausfallen und der Cluster in einem gestörten Zustand arbeitet, würde die Leistung stark abnehmen.
Um Hochverfügbarkeit für RabbitMQ einzurichten, siehe Konfigurieren von Hochverfügbarkeit für RabbitMQ.
Vorteile: Eigenständige RabbitMQ-Cluster
- Hohe Verfügbarkeit
- Die Unterbrechung des Betriebs ist minimal, selbst wenn ein Knoten ausfällt.
- RabbitMQ-Ressourcen werden nicht gemeinsam genutzt
- Andere Dienste nutzen nicht die gleichen Ressourcen und haben daher keinen Einfluss auf die Leistung oder Verfügbarkeit von RabbitMQ.
- Keine Ausfallzeiten für rollierende Updates
- Sie können die RabbitMQ-Einrichtung jeweils für einen Knoten aktualisieren, ohne die Verfügbarkeit des Dienstes zu beeinträchtigen.
Nachteile: Eigenständige RabbitMQ-Cluster
- Hochkomplexer Einsatz
- RabbitMQ muss auf mindestens drei Nodes eingesetzt werden. Der Einführungsprozess ist langwierig und kompliziert.
- Hoher Wartungsaufwand
- In dem seltenen Fall, dass ein ganzer Cluster aufgrund von mehreren Netzwerkpartitionen offline geht, müssen Sie das Problem manuell beheben. Es wird empfohlen, gute Kenntnisse über RabbitMQ-Konfigurationen und -Diagnosen zu haben.
Für Details siehe die offizielle RabbitMQ-Dokumentation.
Qualität der Dienstleistung
Die Verwendung dieser Bereitstellungsarchitektur bedeutet, dass die Dienstqualität stärker von der Systeminfrastruktur abhängt. Die Qualität der Dienste hängt direkt von der Qualität und Zuverlässigkeit Ihrer Netzinfrastrukturen ab.