Instale RocketMQ 4.7.1 en CentOS7

Prefacio

Se reveló que la versión baja del fastjson de Ali (<= 1.2.68) tiene vulnerabilidades de seguridad, y RocketMQ 4.7.0 usa fastjson 1.2.62, por lo que es necesario actualizar RocketMQ a RocketMQ 4.7.1 (fastjson 1.2.69).

Instale RocketMQ 4.7.1 en CentOS7

Este artículo describe el proceso de instalación de RocketMQ 4.7.1 en CentOS7, que solo se utiliza como entorno de desarrollo y prueba:

  • Implementación independiente, tanto el servidor de nombres como el intermediario se instalan en un servidor;
  • Se redujo el tamaño de JVM predeterminado de RocketMQ;
  • No se configuran procesos daemon ni de inicio automático.

Proceso de instalación

OpenJDK 8 se ha instalado y configurado en el servidor JAVA_HOME.

Descarga y descomprime RocketMQ

Busque el enlace para descargar RocketMQ 4.7.1 en el sitio web oficial de RocketMQ, descargue y descomprima RocketMQ:

# 下载
wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

# 解压
unzip rocketmq-all-4.7.1-bin-release.zip

# 安装到/usr/local/rocketmq
mv rocketmq-all-4.7.1-bin-release /usr/local
ln -s /usr/local/rocketmq-all-4.7.1-bin-release /usr/local/rocketmq

Reducir el tamaño de JVM de RocketMQ

La JVM predeterminada de RocketMQ es demasiado grande para usarse en el entorno de desarrollo y prueba, y es necesario reducir el tamaño de la JVM.

En el directorio de instalación de RocketMQ (/ usr / local / rocketmq en este ejemplo), busque la configuración del parámetro JVM en el script sh:

find . -name '*.sh' | xargs egrep 'Xms'

Es necesario modificar los parámetros de JVM de los siguientes scripts sh:

bin/runserver.sh

bin/runbroker.sh

bin/tools.sh

Recuerde hacer una copia de seguridad del script correspondiente antes de modificarlo. El tamaño específico de la JVM se establece de acuerdo con la situación real.

- bin / runserver.sh

antes de arreglar:

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

Después de la modificación:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

- bin / runserver.sh

antes de arreglar:

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

Después de la modificación:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

-Antes de
modificar bin / tools.sh :

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

Después de la modificación:

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"

Iniciar servidor de nombres

# 后台启动
nohup sh bin/mqnamesrv >/dev/null 2>&1 &

El puerto predeterminado de Name Server es 9876. Ejecute sh bin / mqnamesrv -p para ver los elementos de configuración de Name Server y comience especificando el archivo de configuración mediante -c namesrv.conf;

La ruta de registro predeterminada de RocketMQ es `~ / logs / rocketmqlogs /` `;

Puede guardar el comando de inicio del servidor de nombres como un script para facilitar el siguiente inicio.

Iniciar Broker

Debe especificar el servidor de nombres al que desea conectarse al iniciar Broker:

# 后台启动
nohup sh bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &

Puede guardar el comando de inicio del Broker como un script para facilitar el próximo inicio.

Ver el proceso de RocketMQ

ps -ef | grep -v grep | grep rocketmq

Prueba RocketMQ

Prueba de envío y recepción de mensajes

Utilice los ejemplos de consumidores y productores de mensajes de RocketMQ para probar el envío y la recepción de mensajes:

export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

Cerrar RocketMQ

Cerrar corredor
sh bin/mqshutdown broker

Puede guardar el comando de cierre del Broker como un script para facilitar el próximo cierre.

Cerrar servidor de nombres

sh bin/mqshutdown namesrv

El corredor debe cerrarse antes de cerrar el servidor de nombres;

Puede guardar el comando para cerrar el servidor de nombres como un script para facilitar el próximo apagado.

Modificar el puerto del servidor de nombres

El puerto predeterminado de RocketMQ Name Server es 9876. Puede modificar el puerto de Name Server mediante los siguientes métodos:

  1. Agregue un nuevo archivo de configuración del servidor de nombres namesrv.conf, guarde el contenido:
    listenPort=10076
  2. Especifique el archivo de configuración al iniciar el servidor de nombres:
    nohup sh bin/mqnamesrv -c namesrv.conf >/dev/null 2>&1 &
  3. Ver el proceso de RocketMQ:
    ps -ef | grep rocketmq
  4. Verifique el número de puerto del servidor de nombres RocketMQ:
    netstat -tnlp | grep <nameserver_pid>
  5. El corredor debe especificar la nueva dirección (puerto) del servidor de nombres después de la modificación.

Instalar la consola RocketMQ

Clone el proyecto rocketmq-externals y compile rocketmq-console.

Ejemplo de comando:

git clone https://github.com/apache/rocketmq-externals.git
cd rocketmq-externals/rocketmq-console
mvn clean package -Dmaven.test.skip=true

Se target/rocketmq-console-ng*.jarcolocará en el directorio de instalación de RocketMQ (/ usr / local / rocketmq en este ejemplo).

Cree un script para iniciar la consola RocketMQ en el directorio de instalación de RocketMQ para iniciar la consola RocketMQ:

nohup java -jar rocketmq-console-ng*.jar --server.port=8080 --rocketmq.config.namesrvAddr=localhost:9876 > /dev/null 2>&1 &

De forma predeterminada, la consola RocketMQ no requiere una contraseña para iniciar sesión. Consulte la documentación de RocketMQ para la configuración.

Ver:

Solución de problemas

Pregunta 1: Inicio Name Servery Brokererror, o cuando la prueba Please set the JAVA_HOME variable in your environment, We need java(x64)!pero el sistema ya está instalado OpenJDK8, y se ha configurado JAVA_HOME.

Solución: Ejecute which javapara comprobar la ruta de Java, por ejemplo /usr/bin/java.

Modificar bin/runserver.shy bin/runbroker.sh, y bin/tools.sh, comente la verificación de JAVA_HOMEla declaración y especificar explícitamente la JAVA路ruta:

#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

#export JAVA_HOME
export JAVA="/usr/bin/java"

Documentos de referencia

  • Explicación detallada del tutorial de instalación e implementación de RocketMQ
  • Instrucciones detalladas de instalación de RocketMQ

Original de: http://suo.im/6197rC
Autor: nklinsirui

Supongo que te gusta

Origin blog.51cto.com/mageedu/2539862
Recomendado
Clasificación