IBM Cloud Docs
alta disponibilità

alta disponibilità

IBM Cloud® Messages for RabbitMQ è un servizio di messaggi cloud gestito completamente integrato negli ambienti IBM Cloud . Il broker dei messaggi, l'archiviazione e l'infrastruttura di supporto vengono eseguiti tutti in IBM Cloud.

Configurazione cluster RabbitMQ

Messages for RabbitMQ fornisce funzioni di replica, failover e alta disponibilità per proteggere i tuoi database e dati dalla manutenzione, dagli aggiornamenti e dagli errori dell'infrastruttura. Le distribuzioni contengono un cluster con tre nodi in cui utenti, host virtuali, code, scambi, bind, parametri di runtime e altri stati distribuiti sono condivisi tra tutti e tre i nodi. Se un nodo ha esito negativo, il nodo viene eliminato o riavviato e quindi viene risincronizzato nel cluster. La distribuzione rimane disponibile per elaborare i messaggi durante la risincronizzazione, anche se si tratta di un processo che utilizza molta memoria. Per ulteriori informazioni, consultare la pagina Prestazioni .

Considerazioni sulle risorse RabbitMQ

Come broker di messaggi implementato in Erlang, RabbitMQ è completamente dipendente dai core CPU per pianificare i propri processi. Se sono disponibili troppo pochi core per eseguire questi processi, le prestazioni possono risentirne. Se sono disponibili troppo poche risorse CPU per elaborarle, RabbitMQ chiude le connessioni. Prendere in considerazione cpu - contention e scegliere una configurazione di risorsa che fornisca sufficienti core CPU per RabbitMQ in esecuzione come un sistema di produzione. Disporre di risorse CPU dedicate nella tua distribuzione RabbitMQ impedisce anche l'impatto dei vicini rumorosi sulle risorse, come la CPU e la memoria.

Configurazione coda alta disponibilità

L'host virtuale predefinito è configurato per eseguire il mirroring delle code su tutti i nodi nel cluster per fornire alta disponibilità. L'alta disponibilità in RabbitMQ è impostato da policy. Puoi visualizzare la politica nella IU di gestione di RabbitMQ , nell'API HTTPS o in rabbitmqadmin quando accedi con l' account di amministratore.

Pagina delle politicheRabbitMQ
Figura 1. Pagina delle politiche RabbitMQ

È possibile modificare l'alta disponibilità aggiungendo una politica e impostandola con una priorità più alta, ma la politica predefinita non può essere rimossa. Qualsiasi host virtuale aggiuntivo non dispone di una politica di alta disponibilità impostata per impostazione predefinita. È necessario aggiungere una politica di alta disponibilità a tutti gli host virtuali.

Code quorum

L'alta disponibilità può essere gestita con code quorum. L'utilizzo delle code quorum può migliorare in modo significativo l'alta disponibilità di una distribuzione, in particolare nei casi in cui le code esistono a lungo termine e la loro durata è più importante di altre funzioni. Le code quorum gestiscono l'alta disponibilità mantenendo un quorum che utilizza l'algoritmo di consenso raft e il primario corrente e la maggior parte delle repliche concordano sul contenuto della coda. Se accade qualcosa al nodo primario, le repliche scelgono il primario successivo.

La Documentation di RabbitMQ copre i casi di utilizzoe come implementare le code quorum nel tuo cluster.

Code sottoposte a mirroring

Mentre le code quorum sono preferite, la configurazione predefinita in RabbitMQ 4 e precedenti utilizza le code con mirroring. Le code con mirroring sono configurate con ogni coda che contiene un elemento primario su un membro del cluster e i mirror delle code esistono sugli altri membri del cluster. I messaggi pubblicati nella coda prima vanno al primario e poi vengono replicati sui mirror. Se qualcosa accade al nodo primario, il mirror sincronizzato più vecchio viene promosso a primario.

Alta disponibilità per l'applicazione

Le applicazioni che comunicano sulle reti e i servizi cloud sono soggette ad errori di connessione temporanei. Inoltre, poiché Messages for RabbitMQ è un servizio gestito, gli aggiornamenti regolari e la manutenzione del database si verificano come parte delle normali operazioni. Queste operazioni possono causare un breve blip nella connettività, quindi potresti vedere anche una breve interruzione della connessione.

Vuoi progettare le tue applicazioni per gestire una perdita temporanea di connessione alla tua distribuzione o a IBM Cloud.

La Documentation di RabbitMQ contiene una panoramica di ciò che puoi fare per rendere le tue applicazioni solide e stabili nel suo Elenco di controllo della produzione, sotto la sezione Applicazioni . Include alcuni consigli generali di gestione della connessione e di ripristino.

I driver RabbitMQ e RabbitMQ supportano diverse funzioni per aiutarti a progettare un'applicazione resiliente.

Messages for RabbitMQ viene fornito anche con il plug-in Shovel. Le pale sono in grado di gestire la connessione, la lettura e la scrittura di messaggi, l'errore di connessione e la ripubblicazione.

Non sono previsti alcuni minuti di indisponibilità del database o di interruzione della connessione. Apri un ticket di supporto con i dettagli se hai periodi di tempo più lunghi di un minuto senza connettività in modo da poter indagare.

Limiti di connessione Messages for RabbitMQ

Al provisioning, Messages for RabbitMQ ha quattro endpoint differenti e imposta il numero massimo di collegamenti per nodo e per ogni endpoint come segue:

  • HTTPS: 1024 x 3 nodi = 3072
  • AMQPS: 20000 x 3 nodi = 60000
  • MQTTS: 20000 x 3 nodi = 60000
  • STOMPS: 20000 x 3 nodi = 60000

Se il numero di connessioni al database supera il limite di connessioni, le nuove connessioni non riescono e restituiscono un errore.

Monitoraggio per alta disponibilità

Messages for RabbitMQ ha IBM Log Analysis integrazione in modo da poter visualizzare i log live e cronologici.

La verifica dei log della distribuzione ti aiuta a monitorare lo stato di HA e la replica per la tua distribuzione. Se si verificano problemi persistenti con le applicazioni, i log possono anche fornire informazioni su ciò che accade sui database quando si verificano errori di connessione o altre interruzioni.

Guida all'affidabilità di RabbitMQ

La Documentation di RabbitMQ fornisce un'eccellente Guida all'affidabilità che copre una vasta gamma di argomenti relativi alla verifica del funzionamento del cluster e della resilienza dei dati. Inoltre, descrive le funzioni disponibili per l'utente come utente per monitorare la distribuzione, le connessioni, le code e i messaggi per garantire operazioni regolari.

Alta disponibilità, ripristino di emergenza e risorse SLA

Le distribuzioni di Messages for RabbitMQ sono conformi ai termini IBM Cloud Database HA, DR e SLA .