Linux 部署 RocketMQ
1. 下载页面和官网文档
部署文档
https://rocketmq.apache.org/zh/docs/deploymentOperations/01deploy
下载页面
http://rocketmq.apache.org/dowloading/releases/
2. 解压至安装目录
unzip rocketmq-all-5.3.3-bin-release.zip -d /home/soft
3. 创建 namesrv.properties
在conf
目录下创建namesrv.properties
配置文件,可以指定端口,也可以为空
touch namesrv.properties
4. 启动脚本
创建启动脚本,并授权
vim rocketmq-start.sh
写入如下内容
#!/bin/bashROCKETMQ_HOME=/home/soft/rocketmq-all-5.3.3-bin
NAME_SRV_ADDR=127.0.0.1:9876# 默认配置文件路径(可修改)
DEFAULT_NAMESRV_CONF="conf/namesrv.properties"
DEFAULT_BROKER_CONF="conf/broker.conf"# 日志输出目录
LOG_DIR="${ROCKETMQ_HOME}/logs"
mkdir -p "${LOG_DIR}"# 解析参数
NAMESRV_CONF=""
BROKER_CONF=""
while [[ $# -gt 0 ]]; docase "$1" in-n|--namesrv-conf)NAMESRV_CONF="$2"shift 2;;-b|--broker-conf)BROKER_CONF="$2"shift 2;;*)echo "未知参数: $1"exit 1;;esac
done# 设置默认配置文件路径
[[ -z "${NAMESRV_CONF}" ]] && NAMESRV_CONF="${DEFAULT_NAMESRV_CONF}"
[[ -z "${BROKER_CONF}" ]] && BROKER_CONF="${DEFAULT_BROKER_CONF}"# 检查配置文件存在性
check_config() {local config_file="$1"if [[ ! -f "${config_file}" ]]; thenecho "错误: 配置文件不存在 ${config_file}"exit 1fi
}check_config "${NAMESRV_CONF}"
check_config "${BROKER_CONF}"# 启动NameServer
start_namesrv() {echo "正在启动NameServer (使用配置: ${NAMESRV_CONF})..."nohup sh bin/mqnamesrv -c "${NAMESRV_CONF}" > "${LOG_DIR}/namesrv.log" 2>&1 &sleep 5 # 等待初始化完成if ! pgrep -f "mqnamesrv" > /dev/null; thenecho "NameServer启动失败,请检查日志: ${LOG_DIR}/namesrv.log"exit 1fiecho "NameServer启动成功 (PID: $(pgrep -f "mqnamesrv"))"
}# 启动Broker
start_broker() {echo "正在启动Broker (使用配置: ${BROKER_CONF})..."nohup sh bin/mqbroker -n ${NAME_SRV_ADDR} -c "${BROKER_CONF}" --enable-proxy > "${LOG_DIR}/broker.log" 2>&1 &sleep 8 # 等待初始化完成if ! pgrep -f "mqbroker" > /dev/null; thenecho "Broker启动失败,请检查日志: ${LOG_DIR}/broker.log"exit 1fiecho "Broker启动成功 (PID: $(pgrep -f "mqbroker"))"
}# 主流程
start_namesrv
start_broker
chmod +x rocketmq-start.sh
5. 执行上面的脚本启动服务
./rocketmq-start.sh
6. 部署RocketMQ Dashboard
- 下载RocketMQ Dashboard源码并打包,暂时需要jdk1.8
- 上传rocketmq-dashboard-2.0.1-SNAPSHOT.jar 至服务器
- 创建启动脚本
vim start.sh
-Dserver.port=8876
控制台端口
-Drocketmq.config.namesrvAddrs=192.168.2.35:9876
nameServer地址
-Drocketmq.config.proxyAddrs=192.168.2.35:10913
proxy地址
#!/bin/bash
nohup java -Dfile.encoding=utf-8 -Drocketmq.config.namesrvAddrs=192.168.2.35:9876 -Dserver.port=8876 -Drocketmq.config.proxyAddrs=192.168.2.35:10913 -Xms512m -Xmx1024m -jar rocket
mq-dashboard-2.0.1-SNAPSHOT.jar > out.log 2>&1 &
echo $! > pid
- 创建停止脚本
vim stop.sh
kill -9 `cat pid`
执行start.sh
启动控制台即可