Directorio de artículos
prefacio
El siguiente contenido de instalación solo es adecuado para principiantes. Es solo una nota escrita simplemente para aprender RocketMQ. El contenido proviene del tutorial Dark Horse RocketMQ en la estación B.
1. Introducción
El middleware de Message Queue Server es un componente importante en un sistema distribuido. Resuelve principalmente problemas como el acoplamiento de aplicaciones y el recorte de picos de tráfico. Los principales MQ actuales son principalmente RocketMQ, Kafka, RabbitMQ, etc.
Ventajas de RocketMQ sobre otros MQ:
- Admite mensajes transaccionales (el envío de mensajes y las operaciones de base de datos mantienen la coherencia final de ambas partes, RabbitMQ y Kafka no son compatibles)
- Admite la consistencia final de los datos entre múltiples sistemas combinados con RocketMQ (transacciones de múltiples partes, las transacciones de dos partes son la premisa)
- Admite 18 niveles de mensajes retrasados (no compatible con Kafka)
- Admite la retransmisión de mensajes fallidos con tiempos e intervalos de tiempo específicos (Kafka no admite, RabbitMQ requiere confirmación manual)
- Admite el filtrado de etiquetas en el lado del consumidor para reducir la transmisión de red innecesaria (es decir, el filtrado lo realiza MQ, no los consumidores. RabbitMQ y Kafka no lo admiten)
- Admite consumo repetido (RabbitMQ no admite, Kafka admite)
RocketMQ tiene principalmente cuatro componentes principales: NameServer , Broker , Producer y Consumer
Blog de referencia: Introducción a RocketMQ y conceptos básicos
2. Descarga MQ
Descarga del sitio web oficial: enlace de descarga
Ingrese así, aquí está el enlace de descarga de la última versión de RocketMq.
Si desea descargar la versión anterior de RocketMq, solo necesita cambiar la versión en el sitio web, por ejemplo, 4.9.3
cambiar4.4.0
3. Configuración del entorno JAVA
Rocketmq requiere JDK en Linux, versión 1.8 o superior Si ha configurado un entorno Java en Linux, puede omitirlo.
Para configurar el entorno JAVA en Linux, consulte el blog: Configuración del entorno Linux-java
Cuatro, instalación MQ
Cargue el paquete de instalación descargado al
rz
comando del servidor para cargar el paquete de instalación directamente (aquí creé una carpeta en Linux de antemano mkdir /soft/rocketmq
para almacenar el software de administración)
Después de cargar a Linux, descomprima
el comando:unzip rocketmq-all-4.4.0-bin-release.zip
Su estructura de directorios:
- punto de referencia: aquí hay algunos archivos sh que se pueden ejecutar directamente y probar
- bean: este directorio se usa más comúnmente y contiene algunos archivos ejecutables
- conf: Aquí hay algunos archivos de configuración
- lib: es el paquete jar de terceros del que depende mq
5. Iniciar MQ
(1) Inicie NameServer
e ingrese al directorio bin para iniciar cd bin/
en segundo plano onohup sh mqnamesrv &
verifique el registro para ver si mq se inició correctamente o verifique el número de puerto (2) Inicie Broker y modifique las dos configuraciones antes de iniciar mq. la memoria requerida por defecto es relativamente grande, de acuerdo con su propio Para configurar el tamaño de la memoria de Linux, lo cambié a 256 256 128 aquínohup ./mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log
netstat -an | grep 9876
vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
vim runbroker.sh
Aquí también se modifica a 256 256 128
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
Inicie el intermediario
nohup ./mqbroker -n localhost:9876 &
para verificar si la detección de registros es exitosa
tail -f ~/logs/rocketmqlogs/broker.log
Ver la impresión de registro nuevamente significa que el inicio se realizó correctamente.注意:不要把它给关了
6. prueba
Se abren dos ventanas, ambas en el bin
directorio , una para enviar mensajes y otra para recibir mensajes
1. Envía un mensaje
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Producer
PD: Si se informa un error, posibles razones:
(1) El firewall no está cerrado
Puedes desactivar el cortafuegos
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙的状态
firewall-cmd --state
# 禁止firewall开机启动
systemctl disable firewalld.service
O deje que el cortafuegos abra puertos relacionados con MQ
# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent
# 重启防火墙
firewall-cmd --reload
(2) Verifique que el corredor esté apagado
Reinicie el servidor de nombres y el corredor, aquí diré que es causado por el cierre del corredor
2. Recibir mensajes
# 声明一个 namesrv 的地址
export NAMESRV_ADDR=localhost:9876
# 发送消息
./tools.sh org.apache.rocketmq.example.quickstart.Consumer
8. Cerrar MQ
Ingrese bin
al directorio ,
cierre el NameServer
sh mqshutdown namesrv
y cierre el Broker
sh mqshutdown broker
Siguiente: Construcción de la plataforma de monitoreo RocketMQ e introducción del proyecto