背景需求
一台EC2机器上使用Docker
部署两个单实例的RocketMQ
服务。
部署流程
第一个 RocketMQ 服务
创建 Docker 网络:
docker network create rocketmq-dev
创建日志目录:
mkdir -p /root/rocketmq520/dev/logs
chmod 777 /root/rocketmq520/dev/logs
创建数据目录:
mkdir -p /root/rocketmq520/dev/store
chmod 777 /root/rocketmq520/dev/store
创建broker.conf
文件:
echo "brokerIP1=192.20.8.90" > /root/rocketmq520/dev/broker.conf
创建nameserver
启动脚本:
# # cat /root/rocketmq520/dev/start-nameserver.sh
docker run -d --name rmqnamesrv-dev -p 9876:9876 --network rocketmq-dev apache/rocketmq:5.2.0 sh mqnamesrv
创建broker
启动脚本:
# cat /root/rocketmq520/dev/start-broker.sh
docker run -d \
--name rmqbroker-dev \
--network rocketmq-dev \
-p 10912:10912 -p 10911:10911 -p 10909:10909 \
-p 8080:8080 -p 8081:8081 \
-e "NAMESRV_ADDR=rmqnamesrv-dev:9876" \
-e "brokerClusterName=rocketmq-dev" \
-v ./broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf \
-v ./logs:/home/rocketmq/logs \
-v ./store:/home/rocketmq/store \
apache/rocketmq:5.2.0 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
创建Dashboard
数据看板:
mkdir -p /root/rocketmq520/dashboard/dev
cat start-dashboard.sh
docker run -d \
--name rocketmq-dashboard-dev \
--network rocketmq-dev \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv-dev:9876" \
-p 58080:8080 \
-t apacherocketmq/rocketmq-dashboard:latest
启动上面三个服务:
sh start-nameserver.sh
sh start-broker.sh
sh start-dashboard.sh
停止/删除服务:
docker stop rmqnamesrv-dev
docker rm rmqnamesrv-dev
docker stop rmqbroker-dev
docker rm rmqbroker-dev
docker stop rocketmq-dashboard-dev
docker rm rocketmq-dashboard-dev
第二个 RocketMQ 服务
创建 Docker 网络:
docker network create rocketmq-uat
创建日志目录:
mkdir -p /root/rocketmq520/uat/logs
chmod 777 /root/rocketmq520/uat/logs
创建数据目录:
mkdir -p /root/rocketmq520/uat/store
chmod 777 /root/rocketmq520/uat/store
创建broker.conf
文件:
echo "listenPort=10011" > /root/rocketmq520/uat/broker.conf
echo "brokerIP1=192.20.8.90" >> /root/rocketmq520/uat/broker.conf
创建nameserver
启动脚本:
# # cat /root/rocketmq520/uat/start-nameserver.sh
docker run -d --name rmqnamesrv-uat -p 9976:9876 --network rocketmq-uat apache/rocketmq:5.2.0 sh mqnamesrv -n 192.20.8.90:9976
创建broker
启动脚本:
# cat /root/rocketmq520/uat/start-broker.sh
docker run -d \
--name rmqbroker-uat \
--network rocketmq-uat \
-p 8092:10912 -p 10011:10011 -p 8094:10909 \
-p 8090:8080 -p 8091:8081 -p 10009:10009 \
-e "NAMESRV_ADDR=192.20.8.90:9976" \
-e "brokerClusterName=rocketmq-uat" \
-v ./logs:/home/rocketmq/logs \
-v ./store:/home/rocketmq/store \
-v ./broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf \
apache/rocketmq:5.2.0 sh mqbroker --enable-proxy \
-c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
注意:一定要加上-p 10009:10009
。
创建Dashboard
数据看板:
mkdir -p /root/rocketmq520/dashboard/uat
cat start-dashboard.sh
docker run -d \
--name rocketmq-dashboard-uat \
--network rocketmq-uat \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv-uat:9876" \
-p 58081:8080 \
-t apacherocketmq/rocketmq-dashboard:latest
启动上面三个服务:
sh start-nameserver.sh
sh start-broker.sh
sh start-dashboard.sh
停止/删除服务:
docker stop rmqnamesrv-uat
docker rm rmqnamesrv-uat
docker stop rmqbroker-uat
docker rm rmqbroker-uat
docker stop rocketmq-dashboard-uat
docker rm rocketmq-dashboard-uat