1.下载文件(Binary 下载)
版本:rocketmq-all-4.9.4-bin-release.zip
2.安装
# 创建文件夹
mkdir /usr/local/rocketmq
# 解压文件到指定目录
unzip -d /usr/local/rocketmq rocketmq-all-4.9.4-bin-release.zip
# 重命名
mv rocketmq-all-4.9.4-bin-release rocketmq-4.9.4
3.修改配置文件
路径 conf/broker.conf
# nameServer地址(不配置使用报错:No route info of this topic, XXX)
namesrvAddr=172.16.159.129:9876
配置外网访问
namesrvAddr=外网IP:9876
brokerIP1=外网IP
4.启动
启动NameServer(使用脚本启动),脚本创建如下
# 进入目录
cd rocketmq-4.9.4/
# 创建日志存放目录
mkdir logs
# 创建启动脚本
vi start-mqnamesrv.sh
内容如下:
#!/bin/bash
nohup sh bin/mqnamesrv > logs/mqnamesrv.log 2>&1 &
# 赋予可执行权限
chmod +x start-mqnamesrv.sh
# 启动
./start-mqnamesrv.sh
启动Broker(使用脚本启动),脚本创建如下
# 创建启动脚本
vi start-mqbroker.sh
# 内容如下
#!/bin/bash
nohup sh bin/mqbroker -c conf/broker.conf > logs/mqbroker.log 2>&1 &
# 赋予可执行权限
chmod +x start-mqbroker.sh
# 启动
./start-mqbroker.sh
5.停止
停止NameServer(使用脚本停止),脚本创建如下
# 创建停止脚本
vi stop-mqnamesrv.sh
内容如下:
#!/bin/bash
sh bin/mqshutdown namesrv
# 赋予可执行权限
chmod +x stop-mqnamesrv.sh
# 停止
./stop-mqnamesrv.sh
停止Broker(使用脚本停止),脚本创建如下
# 创建启动脚本
vi stop-mqbroker.sh
# 内容如下
#!/bin/bash
sh bin/mqshutdown broker
# 赋予可执行权限
chmod +x stop-mqbroker.sh
# 停止
./stop-mqbroker.sh
备注
1,Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000700000000, 4294967296, 0) failed; error='Not enough space' (errno=12) 内存不足的问题,rocketMQ最小内存为8G,方便测试可以调小点
# 修改文件 runbroker.sh
vi runbroker.sh
# 原内容
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g"
# 修改后 (自定义)
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"
# 修改文件 runserver.sh
vi runserver.sh
# 原内容
# 第一处
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 第二处
JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
# 修改后 (自定义)
# 第一处
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"
# 第二处
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"
2,开放指定端口
# 查询防护墙是否打开
systemctl status firewalld
# 如果打开,可以选择关闭或打开指定端口
# 关闭防火墙
systemctl stop firewalld
# 取消防护墙开机启动
systemctl disable firewalld
# 开放端口(永久)
firewall-cmd --zone=public --add-port=9876/tcp --permanent
firewall-cmd --zone=public --add-port=10909/tcp --permanent
firewall-cmd --zone=public --add-port=10911/tcp --permanent
# 生效开放端口
firewall-cmd --reload
3,No route info of this topic, XXX
检查下 broker.conf 文件中 nameServer地址 是否配置错误