1.准备工作
系统环境:oracle vm virsual CentOS Linux release 7.9.2009 (Core)
RocketMQ版本:rocketmq-all-5.1.1-bin-release.zip
JDK: openjdk1.8
2.部署
解压rocketmq
unzip rocketmq-all-5.1.1-bin-release.zip
迁移到想要的目录中
mv rocketmq-all-5.1.1-bin-release /usr/local
名称太长,改名(个人习惯)
mv rocketmq-all-5.1.1-bin-release rocketmq-5.1.1
在rocketmq-5.1.1的bin路径下,分别对runserver.sh,runbroker.sh,tools.sh 三个文件进行内存调整,若只是单机,建议: -Xms256m -Xmx256m -Xmn128m
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m ***********
3.启动
启动namesrv(请顺序启动哈,先namesrv,再broker)
$ nohup sh bin/mqnamesrv &
启动完成后,查看日志
$ tail -f ~/logs/rocketmqlogs/namesrv.log
后启动broker,broker.conf :单主,异步刷盘,目前我们只用这个简单版本
nohup sh bin/mqbroker -c conf/broker.conf -n 127.0.0.1:9876 &
启动完成后查看日志
$ tail -f ~/logs/rocketmqlogs/broker.log
4.测试
生产者
# 设置 Namesrv 服务器的地址
export NAMESRV_ADDR=127.0.0.1:9876
# 执行生产者 Producer 发送测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
消费者
# 设置 Namesrv 服务器的地址
export NAMESRV_ADDR=127.0.0.1:9876
# 执行消费者 Consumer 消费测试消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
5.关闭服务
# sh bin/mqshutdown broker //停止 broker
# sh bin/mqshutdown namesrv //停止 nameserver
6.开机启动
支持2种开机启动,一种是通过systemctl管理,另外一种是脚本通过service管理,本人更喜欢脚本!
systemctl方式
进入/lib/systemd/system目录下,创建rocketmq-namesrv.service文件
touch rocketmq-namesrv.service
编辑文件内容:
[Unit]
Description=RocketMQ Namesrv
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=sample
User=root
ExecStart=/usr/local/rocketmq/rocketmq-5.1.1/bin/mqnamesrv
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
创建broker服务文件
touch rocketmq-broker.service
编辑文件内容:
[Unit]
Description=rocketmq-broker
After=network.target
[Service]
Type=sample
User=root
ExecStart=/usr/local/rocketmq-5.1.1/bin/mqbroker -c /usr/local/rocketmq-5.1.1/bin/mqbroker/conf/broker.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=0
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
内容编辑完成后,启动、停止
systemctl start rocketmq-namesrv.service
systemctl start rocketmq-broker.service
systemctl stop rocketmq-namesrv.service
systemctl stop rocketmq-broker.service
变更完成后需要先:systemctl daemon-reload
开机启动:
systemctl enable rocketmq-broker.service
systemctl enable rocketmq-namesrv.service
service方式
进入目录/etc/init.d,创建文件:
touch rocketmq
编辑文件:
#!/bin/sh
#
# rocketmq - this script starts and stops the rocketmq daemon
#
# chkconfig: - 85 15
ROCKETMQ_HOME=/usr/local/rocketmq-5.1.1/
ROCKETMQ_BIN=${ROCKETMQ_HOME}/bin
ADDR=127.0.0.1:9876
LOG_DIR=${ROCKETMQ_HOME}/logs
start() {
if [ ! -d ${LOG_DIR} ];then
mkdir ${LOG_DIR}
fi
cd ${ROCKETMQ_HOME}
nohup sh bin/mqnamesrv &
echo -n "The Name Server boot success..."
nohup sh bin/mqbroker -c ${ROCKETMQ_HOME}/conf/broker.conf
echo -n "The broker[%s, ${ADDR}] boot success..."
}
stop() {
cd ${ROCKETMQ_HOME}
sh bin/mqshutdown broker
sleep 1
sh bin/mqshutdown namesrv
}
restart() {
stop
sleep 5
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
"rocketmq" 48L, 731C written
[root@localhost init.d]# chmod +x /etc/init.d/rocketmq
[root@localhost init.d]# chkconfig --add rocketmq
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]# cat rocketmq
#!/bin/sh
#
# rocketmq - this script starts and stops the rocketmq daemon
#
# chkconfig: - 85 15
ROCKETMQ_HOME=/root/data/rocketmq/rocketmq-5.1.1/
ROCKETMQ_BIN=${ROCKETMQ_HOME}/bin
ADDR=127.0.0.1:9876
LOG_DIR=${ROCKETMQ_HOME}/logs
start() {
if [ ! -d ${LOG_DIR} ];then
mkdir ${LOG_DIR}
fi
cd ${ROCKETMQ_HOME}
nohup sh bin/mqnamesrv &
echo -n "The Name Server boot success..."
nohup sh bin/mqbroker -c ${ROCKETMQ_HOME}/conf/broker.conf
echo -n "The broker[%s, ${ADDR}] boot success..."
}
stop() {
cd ${ROCKETMQ_HOME}
sh bin/mqshutdown broker
sleep 1
sh bin/mqshutdown namesrv
}
restart() {
stop
sleep 5
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac
添加权限
chmod +x /etc/init.d/rocketmq
添加服务
chkconfig --add rocketmq
chkconfig rocketmq on
再运行chkconfig --list查看是否出现以下内容,出现则代表加入成功了
通过service来进行管理
service rocketmq start #启动
service rocketmq stop #关闭
service rocketmq restart #重启
结束了!希望对大家有所帮助哈.