RabbitMQ – Come faccio a configurare i server per gli aggiornamenti zero-downtime?

Dopo aver letto i documenti e il RabbitMQ in azione , la creazione di un cluster RabbitMQ sembra abbastanza semplice, ma l'aggiornamento o la patch di un cluster esistente RabbitMQ sembra richiedere l'avvio di tutto il cluster.

C'è un modo per combinare il clustering, la pala, la federazione e il bilanciamento del carico per rendere ansible un aggiornamento continuo senza perdere le code ei messaggi o non mi sono persi qualcosa di più evidente?

  • Ganeti e failover automatico
  • Errore durante l'installazione del server rabbitMQ su Ubuntu 10.10
  • buone failover / soluzioni di alta disponibilità per linux?
  • Come eseguire il failover dei lavori cron?
  • MySQL: Il pacemaker non può avviare il master fallito come nuovo slave?
  • Come scalare un server web che support il polling lungo
  • 2 Solutions collect form web for “RabbitMQ – Come faccio a configurare i server per gli aggiornamenti zero-downtime?”

    Supponendo che i vostri clienti rabbitmq possano tollerare una connessione scollegata, è ansible considerare ciò che è descritto qui .

    il nostro cluster è dietro un VIP. Quando vogliamo aggiornare un cluster, creiamo un cluster alternativo e passeremo il VIP al cluster alternativo. Nel frattempo abbiamo strumenti che spostano i messaggi tra i cluster. Quando viene completato l'aggiornamento del cluster "master", invertire il process.

    Quando si aggiorna da una versione maggiore o minore di RabbitMQ ad un altro (da 3.0.x a 3.1.x, o da 2.xx a 3.xx) o quando si aggiorna Erlang, l'integer cluster deve essere rimosso per l'aggiornamento ( poiché i cluster non possono eseguire versioni miste come questo). Questo non sarà il caso quando si aggiorna da una versione di patch a un'altra (vale a dire da 3.0.x a 3.0.y); queste versioni possono essere mescolate in un cluster (ad exception che 3.0.0 non può essere miscelato con versioni successive della serie 3.0.x).

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.