在CentOS 7上安装RocketMQ 4.9.2

发布于:2025-02-28 ⋅ 阅读:(15) ⋅ 点赞:(0)

在CentOS 7上安装RocketMQ 4.9.2

引言

本文将详细介绍如何在CentOS 7系统上安装并配置Apache RocketMQ 4.9.2版本。我们将涵盖从下载、解压到调整JVM参数、启动服务、测试以及常见问题的解决方法。

下载和解压RocketMQ

首先,登录到你的CentOS服务器,并执行以下命令来准备RocketMQ的安装目录:

cd /opt
mkdir rocketmq
cd rocketmq

接着,使用wget命令下载RocketMQ 4.9.2的压缩包:

wget http://ftp.cuhk.edu.hk/pub/packages/apache.org/rocketmq/4.9.2/rocketmq-all-4.9.2-bin-release.zip

下载完成后,解压文件:

unzip rocketmq-all-4.9.2-bin-release.zip

调整RocketMQ的JVM大小

默认情况下,RocketMQ的JVM设置可能不适合开发或测试环境。为了适应较低资源的环境,我们需要调整JVM参数。

进入RocketMQ安装目录(例如 /opt/rocketmq/rocketmq-all-4.9.2-bin-release),查找所有包含JVM参数设置的Shell脚本:

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

需要修改以下脚本中的JVM参数:

  • bin/runserver.sh
  • bin/runbroker.sh
  • bin/tools.sh

注意:在进行任何修改之前,请先备份相应的脚本文件。

修改示例

修改前:
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改后:
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

根据实际情况调整上述值。

启动Name Server

后台启动Name Server:

nohup sh bin/mqnamesrv >/dev/null 2>&1 &

Name Server的默认端口为9876,可以通过以下命令查看其配置项:

sh bin/mqnamesrv -p

也可以通过指定配置文件的方式启动Name Server:

sh bin/mqnamesrv -c namesrv.conf

RocketMQ的日志默认路径为~/logs/rocketmqlogs/

启动Broker

启动Broker时需要指定要连接的Name Server:

nohup sh bin/mqbroker -n localhost:9876 >/dev/null 2>&1 &

测试RocketMQ

使用RocketMQ自带的消息生产者和消费者示例进行测试:

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

关闭RocketMQ

关闭Broker:

sh bin/mqshutdown broker

关闭Name Server:

sh bin/mqshutdown namesrv

配置外网访问

编辑conf/broker.conf文件,在末尾添加以下内容:

namesrvAddr = 外网IP:9876 # (多个地址以;分隔)
brokerIP1 = 外网IP
enablePropertyFilter = true

重启Broker:

nohup sh bin/mqbroker -n 外网IP:9876 autoCreateTopicEnable=true -c conf/broker.conf >/dev/null 2>&1 &

自动化启停脚本

创建启动脚本m_start.sh

#!/bin/bash
# 启动server
nohup sh bin/mqnamesrv >/dev/null 2>&1 &
# 启动broker
nohup sh bin/mqbroker -n 外网IP:9876 autoCreateTopicEnable=true -c conf/broker.conf >/dev/null 2>&1 &

创建停止脚本m_stop.sh

#!/bin/bash
# 关闭 broker
sh bin/mqshutdown broker
# 关闭 server
sh bin/mqshutdown namesrv

创建测试脚本test.sh

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

安装RocketMQ控制台

克隆rocketmq-externals项目并编译rocketmq-console

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

将生成的target/rocketmq-console-ng*.jar文件放置于RocketMQ安装目录下,并创建一个启动脚本来启动RocketMQ控制台:

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

常见问题及解决方案

问题1:JAVA_HOME变量未设置

如果遇到错误提示“Please set the JAVA_HOME variable in your environment”,即使已经设置了JAVA_HOME,可以尝试以下方法:

  1. 运行which java来确认Java的路径。

  2. 修改bin/runserver.sh, bin/runbroker.sh, 和 bin/tools.sh文件,注释掉校验JAVA_HOME的语句,并明确指定Java路径:

    #[ ! -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="/usr/bin/java"
    

通过以上步骤,你应该能够在CentOS 7上成功安装并运行RocketMQ 4.9.2。希望这篇指南对你有所帮助!


放假不迷糊,加班不抓狂!【微信小程序:排期计算器】,智能算日期,告别混乱,效率翻倍!