Agente de mensajes (ActiveMQ Artemis)
Adobe Commerce también es compatible con el agente de mensajes de código abierto ActiveMQ Artemis a través del Protocolo simple de mensajería orientada a texto (STOMP). Ofrece un sistema de mensajería fiable y escalable, que ofrece flexibilidad para integraciones basadas en STOMP.
Las colas de mensajes proporcionan un mecanismo de comunicaciones asincrónico en el que el remitente y el receptor de un mensaje no se ponen en contacto entre sí. Tampoco necesitan comunicarse con la cola de mensajes al mismo tiempo. Cuando un remitente coloca un mensaje en cola, se almacena hasta que el destinatario lo recibe.
Debe establecerse el sistema de cola de mensajes antes de instalar Adobe Commerce. La secuencia básica es:
- Instale Apache ActiveMQ Artemis y cualquier requisito previo.
- Conecte ActiveMQ a Adobe Commerce.
Instalar Apache ActiveMQ Artemis
Puede instalar ActiveMQ Artemis mediante Docker (recomendado para desarrollo) o instalación manual (recomendado para producción).
Opción 1: instalación de Docker (recomendada para desarrollo)
Requisitos previos
Asegúrese de que Docker esté instalado y en ejecución en el sistema.
Pasos de instalación
-
Ejecute ActiveMQ Artemis utilizando la imagen oficial de Docker:
code language-bash # Run with default configuration docker run --detach \ --name artemis \ --publish 8161:8161 \ --publish 61613:61613 \ --publish 5672:5672 \ apache/activemq-artemis:2.42.0
-
Ejecutar con credenciales personalizadas:
code language-bash # Run with custom username/password docker run --detach \ --name artemis \ --publish 8161:8161 \ --publish 61613:61613 \ --publish 5672:5672 \ --env ARTEMIS_USER=magento \ --env ARTEMIS_PASSWORD=magento \ apache/activemq-artemis:2.42.0
Comandos de administración de Docker
# Check container status
docker ps | grep artemis
# View logs
docker logs artemis
# Stop the container
docker stop artemis
# Start the container
docker start artemis
# Remove the container
docker rm artemis
Acceso a servicios
Una vez que se esté ejecutando el contenedor Docker, puede acceder a:
- Consola web: http://localhost:8161/console (credenciales predeterminadas: artemis/artemis)
- Puerto STOMP: localhost:61613 (para conexión Adobe Commerce)
Opción 2: Instalación manual en Ubuntu/CentOS
Requisitos previos
Asegúrese de que Java 17 o superior esté instalado (requerido para ActiveMQ Artemis 2.42.0 o posterior).
Pasos de instalación
-
Descargue e instale la versión más reciente del sitio web Apache ActiveMQ Artemis. A partir de septiembre de 2025, la última versión estable es 2.42.0:
code language-bash sudo mkdir -p /opt/artemis cd /opt/artemis sudo curl -O https://downloads.apache.org/activemq/activemq-artemis/2.42.0/apache-artemis-2.42.0-bin.tar.gz sudo tar -xzf apache-artemis-2.42.0-bin.tar.gz --strip-components=1 sudo rm apache-artemis-2.42.0-bin.tar.gz
-
Crear el usuario
artemis
y establecer la propiedad:code language-bash # Create artemis user and set ownership sudo useradd -r -s /bin/false artemis 2>/dev/null || true sudo chown -R artemis:artemis /opt/artemis
-
Cree una instancia de broker:
code language-bash sudo /opt/artemis/bin/artemis create /var/lib/artemis-instance --user artemis --password artemis --allow-anonymous sudo chown -R artemis:artemis /var/lib/artemis-instance
-
Inicie el agente:
code language-bash # Start in foreground (for testing) sudo /var/lib/artemis-instance/bin/artemis run # Start as background service sudo /var/lib/artemis-instance/bin/artemis-service start # Stop the broker sudo /var/lib/artemis-instance/bin/artemis-service stop # Restart the broker sudo /var/lib/artemis-instance/bin/artemis-service restart # Force stop the broker sudo /var/lib/artemis-instance/bin/artemis-service force-stop # Check broker status sudo /var/lib/artemis-instance/bin/artemis-service status
Configurar elementos de ActiveMQ
Revise la documentación oficial de ActiveMQ Artemis para configurar y administrar el agente. Preste atención a los siguientes elementos:
- Variables de entorno
- Acceso al puerto (protocolo STOMP)
- Credenciales y cuentas de usuario predeterminadas
- Inicio y detención del agente
- Límites del sistema y ajuste de recursos
Archivos de configuración clave
/var/lib/artemis-instance/etc/broker.xml
: configuración de agente principal/var/lib/artemis-instance/etc/artemis-users.properties
- Autenticación de usuario/var/lib/artemis-instance/etc/artemis-roles.properties
- Funciones de usuario/var/lib/artemis-instance/etc/bootstrap.xml
- Configuración de Bootstrap
Habilitar el protocolo STOMP
Compruebe /var/lib/artemis-instance/etc/broker.xml
para asegurarse de que el aceptador STOMP está configurado:
<acceptors>
<acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true</acceptor>
<acceptor name="stomp">tcp://0.0.0.0:61613?protocols=STOMP</acceptor>
<acceptor name="stomp-ssl">tcp://0.0.0.0:61617?protocols=STOMP;sslEnabled=true;keyStorePath=/path/to/keystore.jks;keyStorePassword=password</acceptor>
</acceptors>
Para habilitar SSL en STOMP, debe agregar el aceptador stomp-ssl
explícitamente.
Instale con ActiveMQ Artemis y conecte
Si instala Adobe Commerce después de de instalar ActiveMQ Artemis, agregue los siguientes parámetros de línea de comandos durante la instalación:
--stomp-host="<hostname>" --stomp-port="61613" --stomp-user="<user_name>" --stomp-password="<password>"
Donde:
--stomp-host
--stomp-port
61613
.--stomp-user
artemis
.--stomp-password
artemis
.--stomp-ssl
false
. Si establece el valor en true, consulte Configuración de SSL para obtener más información.Conectar ActiveMQ Artemis
Si ya tiene una instancia de Adobe Commerce con la configuración de RabbitMQ (AMQP) en el archivo <install_directory>/app/etc/env.php
y desea conectarla a ActiveMQ, reemplace la sección queue
por la sección STOMP para que sea similar a la siguiente:
'queue' =>
array (
'stomp' =>
array (
'host' => 'activemq.example.com',
'port' => '61613', // SSL STOMP port (default 61617, non-SSL is 61613)
'user' => 'magento',
'password' => 'magento',
// Performance tuning options
'heartbeat_send' => 10000, // 10 seconds // Optional
'heartbeat_receive' => 10000, // 10 seconds // Optional
'read_timeout' => 250000 // 250ms // Optional
),
),
También puede establecer los valores de configuración de ActiveMQ mediante el comando bin/magento setup:config:set
(quite la configuración de AMQP si existe en el archivo app/etc/env.php
):
bin/magento setup:config:set --stomp-host="activemq.example.com" --stomp-port="61613" --stomp-user="magento" --stomp-password="magento"
Después de ejecutar el comando o actualizar el archivo <install_directory>/app/etc/env.php
con valores de configuración STOMP, ejecute bin/magento setup:upgrade
para aplicar los cambios y crear las colas necesarias en ActiveMQ.
Configurar SSL
Para configurar la compatibilidad con SSL, edite los parámetros ssl
y ssl_options
en el archivo <install_directory>/app/etc/env.php
de modo que sean similares a los siguientes:
'queue' =>
array (
'stomp' =>
array (
'host' => 'activemq.example.com',
'port' => '61617', // SSL STOMP port (default 61617, non-SSL is 61613)
'user' => 'magento',
'password' => 'magento',
'ssl' => 'true',
'ssl_options' => [
'cafile' => '/etc/pki/tls/certs/DigiCertCA.crt',
'local_cert' => '/path/to/magento/app/etc/ssl/test-activemq.crt', // Optional: Client certificate for mutual SSL
'local_pk' => '/path/to/magento/app/etc/ssl/test-activemq.key', // Optional: Client private key for mutual SSL
'passphrase' => 'client_key_password', // Optional: Passphrase for client private key
'verify_peer' => true,
'verify_peer_name' => true,
'allow_self_signed' => false
],
// Performance tuning options
'heartbeat_send' => 10000, // 10 seconds // Optional
'heartbeat_receive' => 10000, // 10 seconds // Optional
'read_timeout' => 250000 // 250ms // Optional
),
),
Opciones de configuración SSL
verify_peer
true
verify_peer_name
true
allow_self_signed
false
cafile
certfile
keyfile
passphrase
Configuración SSL de desarrollo
Para entornos de desarrollo, puede utilizar una configuración SSL relajada:
'ssl_options' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
Ajuste del rendimiento
ActiveMQ Artemis ofrece varias opciones de ajuste de rendimiento:
'queue' =>
array (
'stomp' =>
array (
'host' => 'activemq.example.com',
'port' => '61613',
'user' => 'artemis',
'password' => 'artemis',
// Performance options
'heartbeat_send' => 10000, // Send heartbeat every 10 seconds
'heartbeat_receive' => 10000, // Expect heartbeat every 10 seconds
'read_timeout' => 250000, // 250ms read timeout
),
),
Monitorización y administración
consola web
ActiveMQ Artemis proporciona una consola de administración basada en web accesible en:
- URL:
http://localhost:8161/console
- Credenciales predeterminadas:
artemis/artemis
Resolución de problemas
Problemas comunes
- Conexión rechazada: Asegúrese de que ActiveMQ Artemis se está ejecutando y de que el aceptador STOMP está configurado.
- Error de autenticación: compruebe el nombre de usuario y la contraseña en la configuración de Broker y en el archivo
env.php
. - Error del protocolo de enlace SSL: compruebe los certificados SSL y la configuración.
Verificar conexión STOMP
Probar la conexión STOMP con telnet:
telnet localhost 61613
Debería ver una conexión establecida. Para probar con un comando STOMP:
# Test basic STOMP connection
echo -e "CONNECT\nhost:localhost\n\n\x00" | telnet localhost 61613
La salida esperada debe mostrar la conexión establecida y la respuesta del protocolo STOMP.
Iniciar los consumidores de cola de mensajes
Después de conectar Adobe Commerce y ActiveMQ Artemis, debe iniciar los consumidores de cola de mensajes. Consulte Configurar colas de mensajes para obtener más información.