Colección RocketMQ: descargue e instale RocketMQ en un entorno Linux | Error NamesrvStartup | Rocketmq-store | Rocketmq-broker | OutOfMemory

prefacio

Creo que hay muchos amigos que han sido torturados por varios informes de errores cuando leen este artículo. ¡Este artículo te ayudará con estos escollos!

Este artículo toma Rocket5.0 , Maven3.8 , Jdk1.8 como ejemplos

El entorno de instalación requerido por RocketMQ 

1) JDK1.8+= , si es inferior a 1.8, habrá un aviso sobre la versión baja de JDK (a través de la versión del comando java -version )

2) Maven3.2+=  ( comprobar la versión con el comando mvn -v )

3) Sistema operativo Linux de 64 bits ( ver a través de uname-a o uname -r o cat /proc/version , etc.)

4) Muy recomendable: se recomienda que la ruta de instalación sea una ruta sin espacios , como /usr/src o /opt/local, etc.

¡Este entorno de instalación es muy importante, de lo contrario pisará algunos pozos innecesarios! !

1. Solución de informe de errores

Debido a que el sitio web oficial tiene los pasos de instalación de RocketMQ , este artículo se enfoca en las soluciones a varios informes de errores , ¡con pasos detallados para descargar e instalar!

Recordatorio: si no le importan estos errores , ¡puede omitirlos directamente e ir a los pasos de instalación! 

1.1  Error [ERROR] mvn <args> -rf :rocketmq-store/broker , etc. al compilar

El comando de compilación oficial dado es:

mvn -Prelease-all -DskipTests instalación limpia -U  #Informar siempre de errores de Rocketmq-store o Rocketmq-Broker

Agregue el parámetro -Dcheckstyle.skip para omitir la verificación en el comando :
mvn -Prelease-all -DskipTests -Dcheckstyle.skip clean install -U 

Recordatorio: Este error no es causado por la versión jdk o la versión maven . Actualmente se desconoce el motivo específico. Para solucionar este error, haga clic para ver los detalles

1.2 Error: no se pudo encontrar o cargar la clase principal org.apache.rocketmq.namesrv.NamesrvStartup al iniciar mqnamesrv

El motivo del error: la posición en la que ejecuta el comando Rocketmq es incorrecta, la versión Rocketmq5.0 se usa como ejemplo

Ruta de descompresión /usr/src/rocketmq-all-5.0.0-source-release 

ruta de ejecución del comando, debe ser

/usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/

Y la ruta de error de su comando de ejecución actual puede ser

/usr/src/rocketmq-all-5.0.0-source-release

o /usr/src/rocketmq-all-5.0.0-source-release/distribution

Nota: después de ejecutar el script de acuerdo con este esquema, este error aún se informa. Se recomienda encarecidamente que el comando rm -rf borre completamente el directorio de descompresión, lo descomprima nuevamente y lo vuelva a compilar. 

Error 3: un montón de sugerencias sobre la memoria o OutOfMemory, error = 'No se puede asignar memoria' (errno = 12)

Motivo del error: la configuración predeterminada en el paquete de instalación necesita consumir mucha memoria. Generalmente lo ejecutamos en una máquina virtual local, por lo que debemos modificar manualmente estos pocos archivos sobre la configuración de la memoria.

runserver.sh, runbroker.sh, herramientas.sh

Dónde se encuentran estos archivos:

cd /usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/bin 

Nota: ¡ El proceso de modificación específico se describe en detalle en   2.5 de los siguientes pasos de instalación (para evitar que el artículo sea pesado en la parte superior)!


recordatorio especial:

Si los tres errores anteriores se manejan de acuerdo con la solución dada en este artículo, el error aún se informa. ¡Se recomienda encarecidamente eliminar el directorio de descompresión, descomprimirlo nuevamente y reconfigurar! !

Comando de eliminación en cascada: rm -rf /usr/src/rocketmq-all-5.0.0-source-release/


¥¥ Evite estos tres pozos, y básicamente puede instalar y ejecutar la versión independiente de RocketMQ sin problemas.Los pasos de instalación y configuración se presentan en detalle a continuación. ¥¥


2. Pasos de descarga e instalación

2.1 Ingrese al sitio web oficial y descargue el paquete de instalación de RocketMQ5.0

Descarga de la versión histórica, haga clic para entrar

 Como se muestra en la figura anterior, haga clic aquí para ingresar a la interfaz de descarga

Como se muestra en la figura anterior, después de hacer clic en el enlace de descarga , ingresará automáticamente a la descarga.
Dirección de descarga: https://dlcdn.apache.org/rocketmq/5.0.0/rocketmq-all-5.0.0-source-release.zip

2.2 Cargar el directorio especificado del entorno Linux

Consejos amables:

Primero use el comando cd para cambiar a la ubicación de almacenamiento del paquete de instalación del software, como mypacket en el directorio raíz para una administración unificada

2.2.1) Si está utilizando xshell, como se muestra a continuación

 2.2.2) Si está utilizando FinalShell, como se muestra a continuación

2.3 Descomprimir en el directorio especificado y compilar

Ver la descompresión y compilación de documentos oficiales

Según el indicador oficial, el comando optimizado es el siguiente: 

cd # cambiar al directorio raíz

cd mypackage # Cambiar al directorio de carga del paquete de instalación

descomprimir cohetemq-all-5.0.0-source-release.zip -d /usr/src # Descomprimir en la ubicación especificada
cd cohetemq-all-5.0.0-source-release # Cambiar al directorio de descompresión
mvn -Prelease-all - DskipTests   - Dcheckstyle.skip clean install -U #La ejecución de este comando requiere la configuración previa de maven.Después de ejecutar el comando, la carpeta de destino se generará automáticamente en el directorio actual (la ejecución de este comando demora al menos 5 minutos, espere pacientemente)
$ cd distribution/target/rocketmq-5.0.0/rocketmq-5.0.0 #Después de la compilación exitosa de mvn, puede ver el directorio 

Consejos amables:

1) Al compilar con el comando mvn, debe instalar y configurar la variable de entorno JAVA y la variable de entorno Maven por adelantado ; de lo contrario, no se puede usar el comando mvn .

2) El comando oficial de compilación mvn puede informar un error, y  el parámetro -Dcheckstyle.skip debe agregarse sobre esta base para omitir la verificación.

La interfaz que ve después de una compilación exitosa:

Interfaz de éxito de compilación CentOS6.5

Interfaz de éxito de compilación CentOS7.9

  

 Como se muestra en la figura a continuación, después de que la compilación sea exitosa, puede ver el directorio de destino debajo del directorio de distribución

2.4 Configuración de variables de entorno de RocketMQ

Copie la ruta pwd en la figura (el /bin al final de la ruta es opcional)

vim /etc/profile

export ROCKETMQ_HOME= /usr/src/rocketmq-all-5.0.0-source-release/distribution /target/rocketmq-5.0.0/rocketmq-5.0.0
export PATH=$PATH:$ROCKETMQ_HOME/bin

Nota:  ROCKETMQ_HOME es el directorio descomprimido + compilado, ¡no el directorio raíz descomprimido! !

source /etc/profile # 使配置文件重新生效

2.5 Ingrese al directorio deep bin compilado y modifique runserver.sh y runbroker.sh respectivamente

Aviso: Modifique estas configuraciones porque si no las modifica, se informará un error de memoria y será difícil iniciar RocketMQ normalmente, el error se muestra en la siguiente figura.

 ¡Modifiquemos estas configuraciones juntos!

cd /usr/src/rocketmq-all-5.0.0-source-release/ && ls
cd distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/ && ls
cd bin && ls

Consejos amables:

La prueba de la máquina virtual local debe modificarse (de lo contrario, puede aparecer un mensaje de error de error de memoria insuficiente ), si se trata de un entorno de producción, no solo no reduzca el tamaño, sino que incluso debe aumentar el tamaño de acuerdo con la demanda. ! ! !

2.5.1 ) Modificar el uso de memoria de runserver.sh

Sugerencia: Presione Esc, el foco está bloqueado en la línea que se va a editar, presione 1yy para copiar una línea, presione p para pegar y luego presione i para ingresar a la edición.

vim runserver.sh

 #JAVA_OPT="${JAVA_OPT} -servidor -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" JAVA_OPT="${JAVA_OPT} -servidor -Xms256m -Xmx256m
-Xmn256m -XX:MetaspaceSize=128m -XX:TamañoMáx.Metaespacio=320m"

2.5.2 ) Modificar el uso de memoria de runbroker.sh

vim runbroker.sh

#JAVA_OPT="${JAVA_OPT} -servidor -Xms8g -Xmx8g"
JAVA_OPT="${JAVA_OPT} -servidor -Xms256m -Xmx256m"

Primero modifique esta parte, como se muestra en la figura a continuación, si continúa informando problemas de desbordamiento de memoria, continúe modificando

 #JAVA_OPT="${JAVA_OPT} -XX:Tamaño máximo de memoria directa=15 g"
JAVA_OPT="${JAVA_OPT} -XX: Tamaño máximo de memoria directa=1 g"

 

2.5.3 ) Modificar el uso de memoria de tools.sh ( Comprender, aún no modificado )

Nota: Si modifica los dos primeros, no se informará ninguna excepción de desbordamiento de memoria y no necesitará modificar el uso de memoria en tools.sh.

vim tools.sh

 JAVA_OPT="${JAVA_OPT} -servidor -Xms1g -Xmx1g -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

Nota: Lo anterior es el parámetro de memoria predeterminado 1g , que se puede ajustar a 256 m  según sea necesario

3. Inicie y cierre el servicio RocketMQ

Aviso:

El comando de inicio usa el comando sh en el directorio bin compilado, no el comando sh descomprimido /distribution/bin.

/usr/src/rocketmq-all-5.0.0-source-release/ distribución/objetivo /rocketmq-5.0.0/rocketmq-5.0.0/ bin

3.1  iniciar servidor de nombres

3.1.1) Método 1: iniciar el servicio en primer plano

jps #查看已启动的java服务
cd /usr/src/rocketmq-all-5.0.0-source-release/distribution/target/rocketmq-5.0.0/rocketmq-5.0.0/ && ls
sh bin/mqnamesrv # 前台运行,便于查看报错

CentOS6.5 inicia con éxito la interfaz 

CentOS7.9 inicia la interfaz exitosa

Después de que el inicio sea exitoso, puede probar Ctrl+c para detener el servicio y luego iniciarlo en segundo plano.

3.1.2) Método 2: iniciar el servicio en segundo plano

nohup sh bin/mqnamesrv &  #官网提供的启动方式

3.1.3) Verifique el registro de inicio de NameServer

tail -f ~/logs/rocketmqlogs/namesrv.log

conectar host remoto[192.168.31.128:9876] éxito, AbstractBootstrap$PendingRegistrationPromise@73e937cf(success) 

3.2  Agente de inicio 

1) Inicie el corredor en segundo plano

sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &

2) Ver el registro de inicio del corredor

tail -f ~/logs/rocketmqlogs/broker.log

 Si el inicio es exitoso, el registro contendrá los siguientes registros:

El intermediario [%s, 192.168.31.128:10911] arrancó correctamente...

3.3 Prueba de envío/recepción de mensajes

3.3.1) Usa tools.sh para enviar mensajes

export NAMESRV_ADDR=localhost:9876 #NAMESRV_ADDR环境变量配置
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

Verá muchos de: SendResult [sendStatus=SEND_OK, msgId= ... 

Las siguientes cifras son los resultados de ejecución de CentOS6.5 y CentOS7.9 respectivamente 

 3.3.2) Usa tools.sh para recibir mensajes

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

Verá muchos de: ConsumeMessageThread_%d Recibir nuevos mensajes: [MessageExt...

Si el registro anterior se puede imprimir correctamente, significa que la implementación de RocketMQ con un solo clic es exitosa.

3.4 La aplicación Java accede al servidor RocketMQ y es necesario abrir el puerto del firewall 9876

firewall-cmd --zone=public --add-port=9876/tcp --permanent #Abrir puerto 9876
firewall-cmd --reload #Reiniciar firewall
firewall-cmd --zone=public --list-ports #Ver puerto abierto 

3.5 Cerrar NameServer y Broker 

Apague el intermediario y namesrv mediante el comando sh bin/mqshutdown respectivamente

> sh bin/mqshutdown broker
El mqbroker(36695) se está ejecutando...
Enviar solicitud de cierre a mqbroker(36695) Aceptar

> sh bin/mqshutdown namesrv
El mqnamesrv(36664) se está ejecutando...
Enviar solicitud de apagado a mqnamesrv(36664) Aceptar

4. Expansión

Comandos comunes de RocketMQ

Ver el estado del clúster./bin//mqadmin clusterList -n 127.0.0.1:9876
Ver el estado del intermediario./bin/mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911
Ver la lista de temas./bin/mqadmin topicList - n 127.0.0.1:9876
Ver estado del tema./bin/mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (cambiar al tema que desea consultar)
Ver enrutamiento del tema./bin/mqadmin topicRoute -n 127.0.0.1: 9876 - t Mi tema

Resumir

Este artículo presenta principalmente la instalación y configuración de RocketMQ5.0, se centra en los errores encontrados durante el proceso de instalación y sus soluciones, y proporciona alguna referencia o inspiración para los recién llegados.

En resumen, si el servicio aún no se puede iniciar normalmente de acuerdo con los pasos anteriores, elimínelo completamente de manera simple y grosera con rm -rf y vuelva a descomprimirlo, compilarlo y configurarlo.

Epílogo

Cada enlace en este artículo se ha probado repetidamente y hay pruebas personales disponibles. Sin embargo, RocketMQ es un gran punto de conocimiento y es posible que algunas soluciones anormales no estén involucradas. Si se encuentran más tarde, se actualizarán una tras otra.

Si crees que no está mal, ¡bienvenido a darle me gusta y recoger o dejar un mensaje!

notas

1. Error de compilación de RocketMQ: mvn -Prelease-all -DskipTests instalación limpia -U | mvn <objetivos> -rf :rocketmq-store|broker 

Supongo que te gusta

Origin blog.csdn.net/xp871038951/article/details/127594948
Recomendado
Clasificación