GNU/Linux >> Linux Esercitazione >  >> Linux

Installazione e gestione di Rabbitmq

Introduzione

Qualsiasi amministratore di sistema esperto sa che a volte rimandare le attività per dopo è molto utile e persino necessario, soprattutto se l'attività richiede tempo e consuma molte risorse. Per fare ciò, è necessario un broker di messaggi, un programma che riceve messaggi (attività) da vari mittenti (applicazioni Web), forma una coda da loro e quindi li distribuisce tra i processi di lavoro.

Questo articolo si concentrerà sul progetto RabbitMQ, un gruppo di applicazioni aperte per implementare le funzioni di un broker di messaggi che implementa l'Advanced Message Queuing Protocol (AMQP).

Messaggi, broker di messaggi e sequenza

La messaggistica è un modo per scambiare determinati dati tra processi, applicazioni, server fisici e virtuali. Questi messaggi, che svolgono alcune funzioni di calcolo, possono contenere quasi tutto, dal testo normale ai grandi blocchi di dati binari. Per la corretta esecuzione di questo processo, è necessario un programma di terze parti:questo è il broker di messaggi.

Un broker di messaggi è solitamente un gruppo di applicazioni, ogni singolo componente delle quali è progettato per elaborare una determinata fase della messaggistica:per ricevere un messaggio, definirlo nella coda e trasferire il messaggio al processo di lavoro responsabile della sua esecuzione. Spesso, al posto di soluzioni a tutti gli effetti, vengono utilizzati programmi che non erano originariamente destinati a questo lavoro (database, demone cron, ecc.); creano semplicemente una coda di messaggi (che tecnicamente rappresenta buffer infiniti), quindi li passano per l'elaborazione automatica o per il polling.

Perché hai bisogno di un broker di messaggi?

I broker di messaggi fungono da intermediari tra vari servizi (applicazioni web). Riducono significativamente il carico e riducono i tempi di consegna dei messaggi, poiché le attività che richiedono del tempo per essere elaborate sono distribuite tra flussi di lavoro progettati esclusivamente per eseguire queste attività. Forniscono un canale affidabile per la trasmissione di messaggi da un'applicazione all'altra.

Quando hai bisogno di un broker di messaggi?

In generale, le funzionalità di base dei broker di messaggi coprono molte aree, incluse, ma non limitate a:

  • Ridurre il tempo di risposta dei server Web alle richieste (perché non devono eseguire attività ad alta intensità di risorse).
  • Distribuzione del messaggio a più destinatari (ad esempio per l'elaborazione).
  • Gli utenti offline possono successivamente recuperare tutti i dati.
  • Modalità di funzionamento completamente asincrona con i sistemi server.
  • Ordinazione e definizione delle priorità delle attività;
  • Bilanciamento del carico tra i processi di lavoro.
  • Miglioramento dell'affidabilità e dei tempi di attività dell'applicazione.

E molto altro.

Una breve recensione di RabbitMQ

RabbitMQ (rilasciato nel 2007) è uno dei più popolari broker di messaggi open source con licenza Mozilla Public License v1.1 come implementazione dell'Advanced Message Queuing Protocol. Progettato in Erlang, RabbitMQ è abbastanza facile da usare e installare.

Come funziona RabbitMQ?

RabbitMQ fornisce un'interfaccia che collega i mittenti (Publishers) con i destinatari (Consumers) utilizzando un broker che distribuisce i dati negli elenchi appropriati:Message Queues.

APPLICATION       EXCHANGE        TASK LIST        WORKER
[DATA]  -------> [DATA] ------> [D]+[D][D][D] ---> [DATA]
Publisher        EXCHANGE          Queue         Consumer

Vantaggi di RabbitMQ

A differenza di altre soluzioni, RabbitMQ è uno stack di applicazioni completo e non una semplice base per l'applicazione di tua scelta. Fornisce tutti gli strumenti necessari nel complesso.

Una breve recensione di AMQP

AMQP (Advanced Message Queuing Protocol) è uno standard aperto diffuso per la distribuzione e la trasmissione di messaggi. Come protocollo e standard, stabilisce una struttura comune per l'interazione di varie applicazioni e broker di messaggi ed elimina i problemi causati dalla progettazione dei singoli programmi.

Installazione RabbitMQ

I pacchetti RabbitMQ sono forniti da CentOS/RHEL e Ubuntu/Debian. Ma, di regola, tali pacchetti sono obsoleti. Pertanto, si consiglia di scaricare e installare RabbitMQ manualmente.

Nota :Si consiglia di eseguire tutte le azioni manuali su un nuovo server in modo da non interrompere il funzionamento delle applicazioni avviate in precedenza e non causare errori di configurazione.

Installa RabbitMQ in CentOS/RHEL

Prima di iniziare a installare RabbitMQ, devi installare le dipendenze del programma, una delle quali è Erlang. Prima di tutto, però, è necessario aggiornare il sistema e le applicazioni standard; per farlo, esegui:

# yum -y update

Per l'installazione di Erlang puoi usare:

# Add and enable relevant application repositories:
# Note: We are also enabling third party remi package repositories.
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
# Finally, download and install Erlang:
yum install -y erlang

ora puoi installare RabbitMQ:

# Download the latest RabbitMQ package using wget:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.2/rabbitmq-server-3.2.2-1.noarch.rpm
# Add the necessary keys for verification:
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# Install the .RPM package using YUM:
yum install rabbitmq-server-3.2.2-1.noarch.rpm

Installa RabbitMQ su Ubuntu

Il processo di installazione di RabbitMQ in Ubuntu/Debian è quasi lo stesso su CentOS. Innanzitutto, devi aggiornare il software:

# apt-get update
# apt-get -y upgrade

Aggiungi la chiave rabbitmq:

# curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | sudo apt-key add -

Esegui l'aggiornamento del pacchetto:

# apt-get update

Ora puoi installare rabbitmq RabbitMQ:

$ sudo apt-get install rabbitmq-server

Gestione RabbitMQ

Come accennato in precedenza, il broker RabbitMQ è molto facile da usare. Questa sezione fornisce le istruzioni per la gestione e la configurazione di RabbitMQ.

Abilitazione della console di gestione

La RabbitMQ Management Console (RabbitMQ Management Console) è uno dei plug-in disponibili che consente di monitorare i processi del server RabbitMQ attraverso un'interfaccia utente grafica basata sul web.

Utilizzando questa console, puoi:

  • Gestire messaggi, code di messaggi, connessioni e utenti;
  • Traccia code di messaggi, connessioni e velocità dei messaggi
  • Invia e ricevi messaggi;
  • Traccia i processi Erlang e l'utilizzo della memoria;

E molto altro.

Per abilitare la gestione di RabbitMQ esegui il comando:

$ sudo rabbitmq-plugins enable rabbitmq_management

Ora puoi aprire la console di gestione nel browser visitando il tuo_ip:15672.

Default rabbitmq user – guest.
Default rabbitmq password – guest

Gestione RabbitMQ in CentOS/RHEL

Per abilitare l'avvio automatico di RabbitMQ devi eseguire:

# chkconfig rabbitmq-server on

Per avviare, arrestare, riavviare e controllare lo stato, utilizza i comandi seguenti:

# start:
/sbin/service rabbitmq-server start
# stop:
/sbin/service rabbitmq-server stop
# restart:
/sbin/service rabbitmq-server restart
# status:
/sbin/service rabbitmq-server status

Gestione di RabbitMQ in Ubuntu/Debian

Per avviare, interrompere, riavviare e controllare lo stato di rabbitmq su Ubuntu/Debian, usa i comandi seguenti:

# start:
service rabbitmq-server start
# stop:
service rabbitmq-server stop
# restart:
service rabbitmq-server restart
# status:
service rabbitmq-server status

Ora il tuo server rabbitmq è pronto per l'uso!

Configurazione RabbitMQ

RabbitMQ viene fornito con impostazioni standard. In generale, sono abbastanza affidabili e non richiedono modifiche.


Linux
  1. Come installare RabbitMQ su CentOS/RHEL 7/6 e Fedora

  2. Installa Apache e PHP su CentOS 7

  3. Monitoraggio e gestione della memoria

  4. Come installare RabbitMQ Server ed Erlang su Linux

  5. tracciare un particolare IP e porta

Come installare RabbitMQ su CentOS 8

Come installare e configurare Grafana

Installa PostgreSQL 11 e PgAdmin4 su Ubuntu 18.04

Come installare lo strumento di fornitura e gestione della configurazione di Foreman su CentOS 8

Installa e configura phpMyAdmin

Come installare l'estensione PHP AMQP e il client RabbitMQ su Linux