«

rocketmq常规快速安装

知叙小硕 发布于 阅读:40


服务器硬件配置:

4核8G内存、4G剩余空间的机器配置。

📋 完整的RocketMQ部署命令集

以下是完善后的完整命令序列,可直接复制执行:

# ==================== 1. 下载与解压 ====================
# 使用国内镜像下载(更快)
wget https://mirrors.bfsu.edu.cn/apache/rocketmq/5.3.2/rocketmq-all-5.3.2-bin-release.zip

# 安装unzip工具(如尚未安装)
sudo apt-get update && sudo apt-get install -y unzip  # Ubuntu/Debian
# 或:sudo yum install -y unzip                        # CentOS/RHEL

# 解压到当前目录
unzip rocketmq-all-5.3.2-bin-release.zip

# 进入解压目录
cd rocketmq-all-5.3.2-bin-release/

# ==================== 2. 修改JVM内存设置 ====================
# 修改NameServer内存设置(调整为512m)
sed -i 's/-Xms4g -Xmx4g -Xmn2g/-Xms512m -Xmx512m -Xmn256m/g' bin/runserver.sh

# 修改Broker内存设置(调整为2g)
sed -i 's/-Xms8g -Xmx8g/-Xms2g -Xmx2g/g' bin/runbroker.sh
sed -i 's/-Xmn4g/-Xmn1g/g' bin/runbroker.sh

# ==================== 3. 设置永久环境变量 ====================
# 将NameServer地址添加到bash配置,避免每次手动设置
echo "export NAMESRV_ADDR=localhost:9876" >> ~/.bashrc
# 立即生效(仅当前终端)
source ~/.bashrc

# ==================== 4. 启动NameServer ====================
# 后台启动NameServer
nohup sh bin/mqnamesrv &

# 查看启动日志,等待成功提示(约5-10秒)
echo "等待NameServer启动..."
tail -f ~/logs/rocketmqlogs/namesrv.log 2>/dev/null | grep -q "boot success"

# 看到成功后按 Ctrl+C 退出日志查看
# 验证NameServer进程
jps -l | grep NamesrvStartup

# ==================== 5. 启动Broker(启用Proxy) ====================
# 后台启动Broker(指定NameServer地址并启用Proxy)
nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

# 查看Proxy启动日志
echo "等待Broker启动..."
tail -f ~/logs/rocketmqlogs/proxy.log 2>/dev/null | grep -q "boot success"

# 看到成功后按 Ctrl+C 退出
# 验证Broker进程
jps -l | grep BrokerStartup

# ==================== 6. 功能测试 ====================
# 测试消息发送(生产50条测试消息)
echo "开始生产者测试..."
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer &
PRODUCER_PID=$!
sleep 10  # 等待生产者完成

# 测试消息消费(启动消费者)
echo "开始消费者测试..."
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer &
CONSUMER_PID=$!
sleep 15  # 等待消费者消费消息

# 停止测试进程
kill $PRODUCER_PID $CONSUMER_PID 2>/dev/null

# ==================== 7. 服务状态检查 ====================
echo "======= 服务状态检查 ======="
echo "1. Java进程列表:"
jps -l | grep -E "NamesrvStartup|BrokerStartup"

echo -e "\n2. 端口监听情况:"
netstat -tlnp | grep -E "9876|10911"  # NameServer和Broker端口

echo -e "\n3. 日志文件位置:"
ls -lh ~/logs/rocketmqlogs/*.log | head -5

# ==================== 8. 停止服务命令(备用) ====================
# 停止Broker
# sh bin/mqshutdown broker

# 停止NameServer
# sh bin/mqshutdown namesrv

# 强制停止(如果上述命令无效)
# kill $(jps -l | grep -E "NamesrvStartup|BrokerStartup" | awk '{print $1}')

🔍 关键检查点与监控建议

部署完成后,建议进行以下检查:

检查项 命令 预期结果
进程状态 jps -l 看到NamesrvStartupBrokerStartup两个进程
端口监听 netstat -tlnp \| grep 9876 9876端口被NameServer监听
日志错误 tail -n 20 ~/logs/rocketmqlogs/proxy.log ERROR级别日志
内存使用 top -p $(jps \| grep -E "Namesrv\|Broker" \| awk '{print $1}' \| tr '\\n' ',') 进程内存占用正常

⚠️ 常见问题处理

如果遇到启动失败,请检查:

  1. 端口冲突:确保9876、10911等端口未被占用
  2. 内存不足:如机器有其他服务,可适当降低Broker内存至-Xms1g -Xmx1g
  3. 磁盘空间:Broker需要存储消息,确保有至少1-2G可用空间
  4. 防火墙:本地测试一般无影响,生产环境需开放相应端口