Ich habe einen RabbitMQ-Cluster mit drei Knoten eingerichtet: rabbit1, rabbit2 und rabbit3, die jeweils in einem Andock-Container ausgeführt werden.RabbitMQ Cluster wählt keinen neuen Master
Alle Warteschlangen werden unter den drei Knoten gespiegelt und rabbit1 ist der Master. Wenn ich den Behälter für Rabbit2 oder Rabbit3 stoppe, funktionieren die zwei verbleibenden Knoten gut. Wenn ich zum Beispiel 3 Nachrichten in einer Warteschlange habe, existieren diese immer noch auf Kaninchen1 und dem anderen Knoten, der immer noch aktiv ist.
Wenn ich jedoch hase1 stoppe, werden die Warteschlangen von kaninchen2 und kaninchen3 geleert, bis ich wieder hase1 starte. Wenn ich eine Nachricht an hase2 oder hase3 sende, wird die Nachricht empfangen, aber nicht in der Warteschlange gespeichert. während, wenn rabbit1 aktiv ist und ich etwas an rabbit2/rabbit3 sende, wird die Nachricht gespeichert und korrekt synchronisiert.
Gibt es irgendeine Möglichkeit oder irgendeine Konfiguration, die ich berücksichtigen muss, damit die Nachricht nicht von den Slaves geleert wird, wenn der Master heruntergefahren wird, aber die Slaves stattdessen einen neuen Master wählen oder zumindest die Nachrichten speichern? Vielen Dank im Voraus.
Ich hätte klarstellen müssen: Ich habe die richtigen Richtlinien festgelegt, um die Nachrichten unter allen Notizen zu replizieren und automatisch zu synchronisieren. Deshalb bin ich so verwirrt, warum es nicht funktioniert. Meine Richtlinien sind wie folgt: rabbitmqctl set_policy ha-all "^ ha \." "{" "ha-mode" ":" "all" "," ha-sync-mode ":" automatisch "}" – KaffeeKaethe
Also entsprechend so "Wenn Sie einen RabbitMQ-Knoten stoppen, der den Master einer gespiegelten Warteschlange enthält, Einige Slave auf einem anderen Knoten werden zum Master hochgestuft. "Es sollte funktionieren. – KaffeeKaethe
Wie lautet der Name Ihrer Warteschlange (n)? –