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 |
看到NamesrvStartup和BrokerStartup两个进程 |
| 端口监听 | 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' ',') |
进程内存占用正常 |
⚠️ 常见问题处理
如果遇到启动失败,请检查:
- 端口冲突:确保9876、10911等端口未被占用
- 内存不足:如机器有其他服务,可适当降低Broker内存至
-Xms1g -Xmx1g - 磁盘空间:Broker需要存储消息,确保有至少1-2G可用空间
- 防火墙:本地测试一般无影响,生产环境需开放相应端口