RabbitMQ è un software di brokeraggio di messaggi open source che originariamente implementava il protocollo AMQP (Advanced Message Queuing Protocol), mentre è stato sviluppato ed esteso per supportare altri protocolli come STOMP (Streaming Text Oriented Messaging Protocol) e MQTT ( Trasporto di telemetria di Accodamento messaggi).
Un software di accodamento messaggi / broker di messaggi viene utilizzato per inviare e ricevere messaggi tra sistemi, applicazioni e servizi distribuiti. RabbitMQ è scritto nel linguaggio di programmazione Erlang, offre supporto per interfacce client e librerie per tutti i principali linguaggi di programmazione inclusi Python, NodeJS, Java, PHP ecc.
In questo tutorial, ti mostrerò come configurare un cluster RabbitMQ su Ubuntu 18.04 Server. Installerò un cluster RabbitMQ utilizzando tre server Ubuntu, abiliterò RabbitMQ Management e imposterò la policy HA per tutti i nodi.
Prerequisiti
- 3 o più server Ubuntu 18.04
- 10.0.15.21 hakase-ubuntu01
- 10.0.15.22 hakase-ubuntu02
- 10.0.15.23 hakase-ubuntu03
- Privilegi di root
Cosa faremo?
- File di configurazione degli host
- Installa il server RabbitMQ
- Abilita plug-in di gestione
- Configura Firewall UFW
- Impostazione del cluster RabbitMQ
- Imposta nuovo utente amministratore
- Mirroring della coda di configurazione di RabbitMQ
- Test
Passaggio 1 - Configurazione del file host
In questo passaggio, modificheremo il file '/etc/hosts' su tutti i server e mapperemo l'indirizzo IP di ciascun server come nome host.
Modifica il file '/etc/hosts' utilizzando l'editor vim.
sudo vim /etc/hosts
Ora incolla lì la seguente configurazione.
10.0.15.21 hakase-ubuntu01 10.0.15.22 hakase-ubuntu02 10.0.15.23 hakase-ubuntu03
Salva ed esci.
Passaggio 2 - Installa il server RabbitMQ
Prima di installare il server RabbitMQ, assicurati che tutti i repository siano aggiornati.
Esegui il comando seguente.
sudo apt update
sudo apt upgrade
Ora installa i pacchetti del server RabbitMQ dal repository di Ubuntu usando il comando apt di seguito.
sudo apt install rabbitmq-server -y
E al termine dell'installazione, avvia il servizio RabbitMQ e abilitalo per l'avvio ogni volta all'avvio del sistema.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
Il server RabbitMQ è stato installato su Ubuntu 18.04.
Passaggio 3 - Abilita i plug-in di gestione RabbitMQ
In questo passaggio, abiliteremo i plug-in di gestione di RabbitMQ. È un'interfaccia che ti consente di monitorare e gestire il server RabbitMQ dal browser web, in esecuzione sulla porta TCP predefinita '15672'.
Abilita i plug-in di gestione di RabbitMQ eseguendo il comando seguente.
sudo rabbitmq-plugins enable rabbitmq_management
Assicurati che non ci siano errori, quindi riavvia il servizio RabbitMQ.
sudo systemctl restart rabbitmq-server
I plug-in di gestione RabbitMQ sono stati abilitati.
Passaggio 4 - Configurazione del firewall UFW
In questo tutorial, abiliteremo il firewall UFW di Ubuntu. Dobbiamo aprire alcune porte che verranno utilizzate dal server RabbitMQ.
Aggiungi il servizio ssh al firewall UFW e abilita il servizio firewall.
sudo ufw allow ssh
sudo ufw enable
Ora aggiungi le nuove porte TCP RabbitMQ "5672,15672,4369,25672".
sudo ufw allow 5672,15672,4369,25672/tcp
Quindi controlla l'elenco delle porte del firewall UFW.
sudo ufw status
La configurazione del firewall UFW di Ubuntu è stata completata e siamo pronti per configurare il cluster RabbitMQ.
Passaggio 5:configurazione del cluster RabbitMQ
Per configurare il cluster RabbitMQ, dobbiamo assicurarci che il file '.erlang.cookie' sia lo stesso su tutti i nodi. Copieremo il file '.erlang.cookie' nella directory '/var/lib/rabbitmq' da 'hakase-ubuntu01' all'altro nodo 'hakase-ubuntu02' e 'hakase-ubuntu03'.
Copia il file '.erlang.cookie' usando i comandi scp da 'hakase-ubuntu01'.
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq/
Assicurati che non ci siano errori su entrambi i server.
Successivamente, dobbiamo configurare "hakase-ubuntu02" e "hakase-ubuntu03" per entrare a far parte del cluster "hakase-ubuntu01".
Nota:
- Esegui i comandi seguenti sui server hakase-ubuntu02' e 'hakase-ubuntu03'.
Riavvia il servizio RabbitMQ e arresta l'app.
sudo systemctl restart rabbitmq-server
sudo rabbitmqctl stop_app
Ora lascia che il server RabbitMQ su entrambi i nodi si unisca al cluster su "hakase-ubuntu01", quindi avvia l'app.
sudo rabbitmqctl join_cluster [email protected]
sudo rabbitmqctl start_app
Al termine, controlla lo stato del cluster RabbitMQ.
sudo rabbitmqctl cluster_status
E otterrai i risultati come di seguito.
Il Cluster RabbitMQ è stato creato, con hakase-ubuntu01, hakase-ubuntu02 e hakase-ubuntu03 come membri.
Passaggio 6 - Imposta nuovo utente amministratore
In questo tutorial creeremo un nuovo utente amministratore per il nostro server RabbitMQ ed elimineremo l'utente "ospite" predefinito. Creeremo un nuovo utente da 'hakase-ubuntu01' e verrà automaticamente replicato su tutti i nodi del cluster.
Aggiungi un nuovo utente chiamato "hakase" con la password "[email protected]".
sudo rabbitmqctl add_user hakase [email protected]
Configura l'utente 'hakase' come amministratore.
sudo rabbitmqctl set_user_tags hakase administrator
E concedi all'utente 'hakase' il permesso di modificare, scrivere e leggere tutti i vhost.
sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"
Ora elimina l'utente "ospite" predefinito.
sudo rabbitmqctl delete_user guest
E controlla tutti gli utenti disponibili.
sudo rabbitmqctl list_users
E otterrai il risultato come di seguito.
È stato creato un nuovo utente amministratore RabbitMQ e l'utente 'ospite' predefinito è stato eliminato.
Passaggio 7 - Mirroring della coda di configurazione di RabbitMQ
Per impostazione predefinita, i contenuti di una coda all'interno di un cluster RabbitMQ si trovano su un singolo nodo (il nodo su cui è stata dichiarata la coda).
Questa configurazione è necessaria, è necessario configurare il cluster "ha policy" per il mirroring della coda e la replica su tutti i nodi del cluster. Se il nodo che ospita il queue master si guasta, il mirror più vecchio verrà promosso al nuovo master purché sia sincronizzato, dipende dalle politiche 'ha-mode' e 'ha-params'.
Di seguito alcuni esempi sulle politiche di RabbitMQ.
Imposta la policy ha denominata 'ha-all' di cui tutte le code nel cluster RabbitMQ eseguiranno il mirroring su tutti i nodi del cluster.
sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'
Imposta la politica ha denominata 'ha-two' in cui tutti i nomi di coda iniziano con 'two.' eseguirà il mirroring sui due nodi del cluster.
sudo rabbitmqctl set_policy ha-two "^two\." \
'{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
Imposta una politica di alta disponibilità denominata "ha-nodes" che conterrà tutte le code in cui il nome inizia con "nodes". Eseguiremo il mirroring su due nodi specifici 'hakase-ubuntu02' e 'hakase-ubuntu03' nel cluster.
sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
'{"ha-mode":"nodes","ha-params":["[email protected]", "[email protected]"]}'
RabbitMQ elenca le politiche.
sudo rabbitmqctl list_policies;
RabbitMQ elimina una politica ha specifica.
sudo rabbitmqctl clear_policy ha-two
Fase 8 - Test
Apri il tuo browser web e digita l'indirizzo IP del nodo con la porta '15672'.
http://10.0.15.21:15672/
Digita il nome utente "hakase" con la password "[email protected]".
E otterrai la dashboard di amministrazione di RabbitMQ come mostrato di seguito.
Lo stato di tutti i nodi del cluster è attivo e funzionante.
Ora fai clic sul menu della scheda "Amministrazione" e fai clic sul menu "Utenti" a lato.
E otterrai un utente hakase nell'elenco.
Ora fai clic sul menu della scheda "Amministrazione" e fai clic sul menu "Politiche" a lato.
E otterrai tutte le policy RabbitMQ che abbiamo creato.
L'installazione e la configurazione di RabbitMQ Cluster sui server Ubuntu 18.04 sono state completate con successo.