Apache ActiveMQ è un server di messaggistica ampiamente utilizzato scritto in Java. Come fanno comunemente i servizi di messaggistica, crea un ponte tra sistemi eterogenei per uno scambio di dati affidabile sotto forma di messaggi inseriti in coda dai client produttori, dove aspettano di essere "letti" o consumati dai client consumer.
Naturalmente un sistema client di ActiveMQ può essere sia produttore che consumatore e più di un sistema può iscriversi a una coda o argomento, consentendo così una comunicazione flessibile tra questi sistemi client. Molte piattaforme e protocolli diversi possono essere utilizzati per connettersi ad ActiveMQ, aumentando ulteriormente la sua utilità.
In questo tutorial installeremo Apache ActiveMQ su Red Hat Enterprise Linux 8 da tarball, aggiungeremo il systemd
unit file per facilità d'uso e accedi alla pagina di amministrazione del nostro nuovo servizio per creare una coda.
In questo tutorial imparerai:
- Come installare ActiveMQ dal tarball
- Come configurare l'ambiente dalla riga di comando
- Come aggiungere file di unità systemd per ActiveMQ
- Come accedere alla pagina di amministrazione
Pagina di benvenuto di Apache ActiveMQ su RHEL 8
Requisiti e convenzioni software utilizzati
Categoria | Requisiti, convenzioni o versione del software utilizzata |
---|---|
Sistema | Red Hat Enterprise Linux 8 |
Software | Apache ActiveMQ 5.15.8 |
Altro | Accesso privilegiato al tuo sistema Linux come root o tramite sudo comando. |
Convenzioni | # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando sudo comando$ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato |
Come installare activemq su Redhat 8 istruzioni passo passo
Apache ActiveMQ richiede un'installazione Java 8 funzionante e nient'altro. Dovremmo tenere a mente che i messaggi verranno mantenuti su disco, quindi è necessario uno spazio appropriato. In questo tutorial non daremo un carico reale al server, la coda che creiamo non consumerà spazio, in quanto sarà vuota.
- Per trovare il pacchetto di cui abbiamo bisogno, possiamo controllare la home page del rilascio. Lì possiamo trovare l'URL, che può essere fornito a
wget
. Installeremo l'applicazione sotto/opt
directory, quindi la inseriamo:# cd /opt
E scarica il pacchetto utilizzando l'URL che abbiamo acquisito dal sito Web:
# wget "http://www.apache.org/dyn/closer.cgi&filename=/activemq/5.15.8/apache-activemq-5.15.8-bin.tar.gz&action=download" -O apache-activemq-5.15.8-bin.tar.gz
Il sito è abbastanza intelligente da reindirizzarci al pacchetto sul mirror più vicino, ma
wget
ha bisogno di virgolette doppie per gestire l'URL e possiamo specificare il nome del file di output con-O
, evitando un URL come nome file. - Estrarremo l'archivio sul posto:
# tar -xvf apache-activemq-5.15.8-bin.tar.gz
- Aggiungiamo un collegamento simbolico che punta ad esso che ha un nome più intuitivo:
# ln -s /opt/apache-activemq-5.15.8 /opt/activemq
- Per motivi di sicurezza, non eseguiamo il servizio come
root
(nulla dovrebbe essere eseguito come root se non è necessario). Creiamo un utenteactivemq
e il servizio verrà eseguito con il suo nome:# useradd activemq
- Impostiamo questo nuovo utente come proprietario del contenuto del pacchetto estratto, in modo ricorsivo:
# chown -R activemq:activemq apache-activemq-5.15.8*
- Creiamo un file di unità,
/etc/systemd/system/activemq.service
, che conterrà la definizione del servizio:[Unit] Description=Apache ActiveMQ After=network.target [Service] Type=forking User=activemq Group=activemq ExecStart=/opt/activemq/bin/activemq start ExecStop=/opt/activemq/bin/activemq stop [Install] WantedBy=multi-user.target
- Dobbiamo ricaricare
systemd
per notare il nuovo servizio:# systemctl daemon-reload
- E d'ora in poi, possiamo gestire:start, stop e ottenerne lo stato:
# systemctl start|stop|status activemq
- Se prevediamo di utilizzare questo servizio regolarmente, possiamo ordinare
systemd
per avviare il servizio ad ogni avvio:# systemctl enable activemq
- Per assicurarci che tutto funzioni correttamente, dopo aver avviato il servizio, possiamo controllare il suo file di log, che è
/opt/activemq/data/activemq.log
nel nostro caso. In questo file possiamo trovare una voce che indica che è raggiungibile con un browser:2019-01-15 15:59:14,359 | INFO | ActiveMQ WebConsole available at http://0.0.0.0:8161/ | org.apache.activemq.web.WebConsoleStarter | main
- Porta
8161
è la porta predefinita per ActiveMQ. Se la nostra macchina esegue un firewall, dobbiamo aprire questa porta per accedere alla WebConsole:# firewall-cmd --zone=public --add-port=8161/tcp --permanent success # firewall-cmd --reload success
- Ora possiamo accedere alla nostra ActiveMQ WebConsole puntando un browser al nome host o all'indirizzo IP della macchina, porta 8161, aggiungendo all'URL
/admin
, per vedere più di una pagina di benvenuto e alcuni link. Pagina della console di Apache ActiveMQ.Questa pagina richiederà l'autenticazione. Poiché non abbiamo modificato la configurazione predefinita, possiamo indovinare quali potrebbero essere il nome utente e la password predefiniti. Suggerimento:proviamo admin/admin.
- Il nostro server ActiveMQ è attivo e funzionante e possiamo gestirlo dalla WebConsole. Ad esempio, cliccando sul link "Code", possiamo creare una coda (vuota nell'immagine qui sotto): Elenco code ActiveMQ con coda di esempio.
Possiamo iniziare a collegare i client al nostro server ActiveMQ e fornirgli messaggi da mettere in coda e inoltrare ai consumatori quando necessario.