ActiveMQ

Activemq no es más que un software que ejerce de intermediario entre dos o más aplicaciones para intercambiar mensajes. A este tipo de arquitecturas son conocidas como MOM (Message Oriented Middleware).

En lugar de enviar los mensajes directamente entre cada una de las aplicaciones, implementamos un broker de mensajes , que será el que se encargue de la comunicación y transmisión de Mensajes entre las diferentes aplicaciones. Con esto podemos implementar una SOA (Arquitectura Orientada a Servicios) donde cada servicio es expuesto mediante una cola de mensajes.

Instalación

Partimos de una distribución base de Centos 7 y lo primero que haremos será actulizar el sistema

yum update 

Instalación de Java

Descargamos la última versión de java 8 disponible en este momento desde https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.rpm

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u191-b12/jdk-8u191-linux-x64.rpm"

Instalamos el paquete de java que nos hemos descargado

yum -y localinstall jdk-8u191-linux-x64.rpm</sch>

Añadimos las varibles de entorno para JAVA, para ello editamos el fichero vi ~/.bash_profile y añadimos al final
<sxh>
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64/
export JRE_HOME=/usr/java/jdk1.8.0_191-amd64/jre

ejecutamos source ~/.bash_profile para cargar los cambios.

si ahora ejecutamos echos $JAVA_HOME debería de salir

/usr/java/jdk1.8.0_191-amd64/

Instalación de ActiveMQ

Descargamos la últimar versión estable desde http://activemq.apache.org/download.html

wget http://www-eu.apache.org/dist/activemq/5.15.8/apache-activemq-5.15.8-bin.tar.gz</sh>

extraemos los ficheros
<sxh>
tar xvzf apache-activemq-5.15.8-bin.tar.gz -C /var

renombramos para el directorio para simplificar el acceso

cd /var
mv apache-activemq-5.15.8/ /var/activemq/

Probamos a arrancarlo

./bin/activemq start

Si todo va bien debería de salir algo parecido a

INFO: Loading '/var/activemq//bin/env'
INFO: Using java '/usr/java/jdk1.8.0_191-amd64//bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/var/activemq//data/activemq.pid' (pid '8540')

Creación del servicio en systemd

Aunque se puede arrancar y parar el ActiveMQ con los comando anteriores, lo recomendable es usar un servicio en systemd para iniciar el servicio al arrancar el servidor. Para ello creamos el siguiente fichero /etc/systemd/system/activemq.service

y añadimos lo siguiente

[Unit]
Description=ActiveMQ service
After=network.target

[Service]
Type=forking
ExecStart=/var/activemq/bin/activemq start
ExecStop=/var/activemq/bin/activemq stop
User=root
Group=root
Restart=always
RestartSec=9
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=activemq

[Install]
WantedBy=multi-user.target

Ahora podemos iniciarlo con

systemctl start activemq

Añadirlo para que arranque en el inicio

systemctl enable activemq

Comprobar su estado

systemctl status activemq

Si todo ha ido bien deberíamos de poder llegar con nuestro navegador web a la dirección http://ip_del_servidor:8161/admin

con el usuario y clave admin/admin

En caso de que no llegues revisa si tienes activado el firewall del equipo y si es así deshabilitado

systemctl disable firewalld
o añade las siguientes reglas
firewall-cmd --zone=public --permanent --add-port=8161/tcp
firewall-cmd --reload

Bastionado

Editar el fichero credential.properties y cambiar los vaolores que trae por defecto de

  • activemq.username=system
  • activemq.password=manager
  • guest.password=password

Reiniciar el servicio activemq para aplicar los cambios.

Referencias