Sie können RabbitMQ in einer Clusterkonfiguration auf mindestens drei eigenständigen Computern bereitstellen.
Was Sie wissen sollten
- Das Netzwerk zwischen den Knoten sollte zuverlässig sein, eine hohe Leistungsschwelle haben und eine geringe Latenzzeit aufweisen.
- Wenn Sie Knoten in verschiedenen geografischen Regionen bereitstellen, müssen Sie die oben genannten Metriken garantieren können. 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 bereitgestellt werden.
- Mehr Knoten verbessern zwar die Ausfallsicherheit, nicht aber die Leistung.
Es wird empfohlen, umfassende Kenntnisse über RabbitMQ-Konfigurationen zu haben. Details finden Sie in der offiziellen RabbitMQ-Dokumentation.
Hochverfü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 ausgeführt werden.
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
- Hochverfügbarkeit
- Die Unterbrechung des Betriebs ist minimal, selbst wenn ein Knoten ausfällt.
- RabbitMQ-Ressourcen werden nicht freigegeben
- 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
- Hochkomplexe Bereitstellung
- RabbitMQ muss auf mindestens drei Knoten bereitgestellt werden. Der Bereitstellungsprozess 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.
Details finden Sie in der offiziellen RabbitMQ-Dokumentation.
Qualität der Dienste
Die Verwendung dieser Bereitstellungsarchitektur bedeutet, dass die Qualität der Dienste stärker von Ihrer Systeminfrastruktur abhängt. Die Qualität der Dienste hängt direkt von der Qualität und Zuverlässigkeit Ihrer Netzinfrastrukturen ab.