前言:
部署问题:CentOS7 Docker安装RocketMQ5.2.0(集群版)-CSDN博客
降低版本至RocketMQ5.0.0
机器1 namesrv-a
创建在宿主机的日志映射目录,启动
sudo mkdir -p /home/rocketmq/namesrv-a/logs &&
sudo chmod -R 777 /home/rocketmq &&
docker run -d \
--name namesrv-a \
--restart=always \
--network host \
-p 9876:9876 \
-v /home/rocketmq/namesrv-a/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "MAX_POSSIBLE_HEAP=100000000" \
apache/rocketmq:5.0.0 \
sh mqnamesrv
验证NameServer启动,The Name Server boot success
docker logs namesrv-a
机器2 namesrv-b
sudo mkdir -p /home/rocketmq/namesrv-b/logs &&
sudo chmod -R 777 /home/rocketmq &&
docker run -d \
--name namesrv-b \
--restart=always \
--network host \
-p 9876:9876 \
-v /home/rocketmq/namesrv-b/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "MAX_POSSIBLE_HEAP=100000000" \
apache/rocketmq:5.0.0 \
sh mqnamesrv
docker logs namesrv-b
机器1 broker-a
创建broker配置文件、数据存储路径、日志目录
mkdir -p /home/rocketmq/broker-a/conf &&
mkdir -p /home/rocketmq/broker-a/store &&
mkdir -p /home/rocketmq/broker-a/logs &&
sudo chmod -R 777 /home/rocketmq &&
sudo vi /home/rocketmq/broker-a/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = SYNC_MASTER
flushDiskType = SYNC_FLUSH
autoCreateTopicEnable=true
brokerIP1 = 192.168.10.100
namesrvAddr=192.168.10.100:9876;192.168.10.101:9876
listenPort=10911
haListenPort=10912 # 主从同步端口
启动Broker容器:
docker run -d \
--name broker-a \
--restart=always \
--network host \
-p 10911:10911 -p 10912:10912 \
-v /home/rocketmq/broker-a/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf/broker.conf \
-v /home/rocketmq/broker-a/store:/home/rocketmq/store \
-v /home/rocketmq/broker-a/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq:5.0.0 \
sh mqbroker -c /home/rocketmq/rocketmq-5.0.0/conf/broker.conf
docker logs broker-a
机器2 broker-a-s
创建broker配置文件、数据存储路径、日志目录
mkdir -p /home/rocketmq/broker-a-s/conf &&
mkdir -p /home/rocketmq/broker-a-s/store &&
mkdir -p /home/rocketmq/broker-a-s/logs &&
sudo chmod -R 777 /home/rocketmq &&
sudo vi /home/rocketmq/broker-a-s/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 1
brokerRole = SLAVE
brokerIP1 = 192.168.10.101
namesrvAddr=192.168.10.100:9876;192.168.10.101:9876
autoCreateTopicEnable=true
listenPort=11011
启动Broker容器:
docker run -d \
--name broker-a-s \
--restart=always \
--network host \
-p 11011:11011 \
-v /home/rocketmq/broker-a-s/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf/broker.conf \
-v /home/rocketmq/broker-a-s/store:/home/rocketmq/store \
-v /home/rocketmq/broker-a-s/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq:5.0.0 \
sh mqbroker -c /home/rocketmq/rocketmq-5.0.0/conf/broker.conf
docker logs broker-a-s
机器2 broker-b
创建broker配置文件、数据存储路径、日志目录
mkdir -p /home/rocketmq/broker-b/conf &&
mkdir -p /home/rocketmq/broker-b/store &&
mkdir -p /home/rocketmq/broker-b/logs &&
sudo chmod -R 777 /home/rocketmq &&
sudo vi /home/rocketmq/broker-b/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = SYNC_MASTER
flushDiskType = SYNC_FLUSH
autoCreateTopicEnable=true
brokerIP1 = 192.168.10.101
namesrvAddr=192.168.10.100:9876;192.168.10.101:9876
listenPort=10911
haListenPort=10912 # 主从同步端口
启动Broker容器:
docker run -d \
--name broker-b \
--restart=always \
--network host \
-p 10911:10911 -p 10912:10912 \
-v /home/rocketmq/broker-b/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf/broker.conf \
-v /home/rocketmq/broker-b/store:/home/rocketmq/store \
-v /home/rocketmq/broker-b/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq:5.0.0 \
sh mqbroker -c /home/rocketmq/rocketmq-5.0.0/conf/broker.conf
docker logs broker-b
机器1 broker-b-s
创建broker配置文件、数据存储路径、日志目录
mkdir -p /home/rocketmq/broker-b-s/conf &&
mkdir -p /home/rocketmq/broker-b-s/store &&
mkdir -p /home/rocketmq/broker-b-s/logs &&
sudo chmod -R 777 /home/rocketmq &&
sudo vi /home/rocketmq/broker-b-s/conf/broker.conf
brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 1
brokerRole = SLAVE
brokerIP1 = 192.168.10.100
namesrvAddr=192.168.10.100:9876;192.168.10.101:9876
autoCreateTopicEnable=true
listenPort=11011
启动Broker容器:
docker run -d \
--name broker-b-s \
--restart=always \
--network host \
-p 11011:11011 \
-v /home/rocketmq/broker-b-s/conf/broker.conf:/home/rocketmq/rocketmq-5.0.0/conf//broker.conf \
-v /home/rocketmq/broker-b-s/store:/home/rocketmq/store \
-v /home/rocketmq/broker-b-s/logs:/home/rocketmq/logs \
-v /etc/localtime:/etc/localtime:ro \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq:5.0.0 \
sh mqbroker -c /home/rocketmq/rocketmq-5.0.0/conf/broker.conf
docker logs broker-b-s
Dashboard部署
在任意一台机器上启动Dashboard:
docker run -d --name rmqconsole \
--restart=always \
--network host \
-p 8080:8080 \
-v /home/rocketmq/rmqconsole/data:/tmp/rocketmq-console/data \
-v /etc/localtime:/etc/localtime:ro \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.10.100:9876;192.168.10.101:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false -Drocketmq.config.loginRequired=false" \
apacherocketmq/rocketmq-dashboard:latest
查看日志
docker logs -f rmqconsole
消息测试
机器1生产、消费消息
docker exec -it namesrv-a sh mqadmin sendMessage -n "192.168.10.100:9876;192.168.10.101:9876" -t TestTopic -p "Test message"
docker exec -it namesrv-a sh mqadmin consumeMessage -n "192.168.10.100:9876;192.168.10.101:9876" -t TestTopic -g TestGroup
机器2生产、消费消息
docker exec -it namesrv-b sh mqadmin sendMessage -n "192.168.10.100:9876;192.168.10.101:9876" -t TestTopic -p "Test message"
docker exec -it namesrv-b sh mqadmin consumeMessage -n "192.168.10.100:9876;192.168.10.101:9876" -t TestTopic -g TestGroup
故障测试
停止一个NameServer
docker stop namesrv-a
停止一个主Broker主节点
- 验证消息收发是否正常,
- 验证备节点是否自动接管
- 通过Dashboard观察状态变化
docker stop broker-a
出现的问题
问题1 目前重启broker的节点后,这个dashboard显示生产数据为0




经测试还是能正常消费,说明信息还在,应该还是dashboard查询的问题

问题2 使用docker安装的最新版本dashboard这里不能显示

我们去官方下载2.0.0Release稳定版本的源码

使用源码部署后,这里就能看到了

1226

被折叠的 条评论
为什么被折叠?



