Ich möchte eine hohe Verfügbarkeit auf RabbitMQ-Knoten einrichten. Derzeit habe ich einen einzelnen Server, auf dem RabbitMQ läuft, aber ich werde einen weiteren hinzufügen. Hier ist die aktuelle Konfiguration, die wir in der NodeJS-Anwendung verwenden.
rabbitMQ: {
url: 'amqp://user:password@node1:5672'
},
1) Muss ich auf beiden RabbitMQ-Knoten (Knoten1 und Knoten2) einen Cluster einrichten?
2) Was wäre die neue URL, die ich in die Konfigurationsdatei aufnehmen muss?
Antwort1
Das RabbitMQ-Team überwachtdiese Mailinglisteund beantwortet nur manchmal Fragen auf StackOverflow.
Sie geben keine Details darüber an, welche RabbitMQ-Version, Erlang-Version, welches Betriebssystem oder welche Node.js-Bibliothek Sie verwenden. Bitte geben Sie den Leuten in Zukunft immer solche Details, damit sie leichter helfen können.
Da Sie mit RabbitMQ-Clustering noch nicht vertraut sind, empfehle ich Ihnen dringend, unsere Dokumentation dazu zu lesen - https://www.rabbitmq.com/clustering.html
Muss ich auf beiden RabbitMQ-Knoten (Knoten1 und Knoten2) einen Cluster einrichten?
Auf beiden Knoten muss dieselbe Version von RabbitMQ und Erlang laufen. Sie erstellen den Cluster gemäß der Dokumentation, indem Sie die Clustering-Befehle auf einem Knoten ausführen. Wenn Sie erfolgreich waren, rabbitmqctl cluster_status
wird der Befehl dies anzeigen.
2) Was wäre die neue URL, die ich in die Konfigurationsdatei aufnehmen muss?
Ich gehe davon aus, dass Sie diesquaremo/amqp.nodeBibliothek. Diese Bibliothek unterstützt nicht die Bereitstellung mehrerer Hosts in der Verbindungs-URI. Sie müssen dies selbst implementieren und auch die Verbindungswiederherstellung selbst implementieren. Weitere Informationen finden Sie unterdieses GitHub-Problem.
Es gibt jedoch eine Bibliothek, die mehrere Knoten und die Wiederverbindung unterstützt:rascal
. Sie können rascal
den Code entweder selbst verwenden oder ausleihen (hier zum Beispiel).