RocketMQ集群部署
RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建
机器
ip以真实设备为准
两台机器 部署broker-a形成一主一从
服务器 |
IP |
NameServer |
BROKER角色 |
服务器1 |
83.1.12.30 |
83.1.12.30:9876 |
|
服务器2 |
83.1.12.31 |
83.1.12.31:9876 |
broker-a(master),broker-b-s(slave) |
服务器3 |
83.1.12.32 |
83.1.12.32:9876 |
broker-b(master),broker-a-s(slave) |
参考文档
1
| https://rocketmq.apache.org/zh/docs/quickStart/01quickstart
|
Host配置
1 2 3
| echo "83.1.12.30 rocketmq-n0" | tee -a /etc/hosts echo "83.1.12.31 rocketmq-n1" | tee -a /etc/hosts echo "83.1.12.32 rocketmq-n2" | tee -a /etc/hosts
|
安装包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
cd /home wget https://dist.apache.org/repos/dist/release/rocketmq/5.3.0/rocketmq-all-bin-release.zip
unzip rocketmq-all-5.3.0-bin-release.zip mv /home/rocketmq-all-5.3.0-bin-release /home/rocketmq
mkdir -p /home/rocketmq/logs sed -i 's#${user.home}#/home/rocketmq#g' /home/rocketmq/conf/*.xml
sed -i 's#-Xms8g -Xmx8g#-Xms2g -Xmx2g#g' /home/rocketmq/bin/runbroker.sh sed -i 's#-Xms4g -Xmx4g#-Xms1g -Xmx1g#g' /home/rocketmq/bin/runserver.sh
|
Namesrv配置
三台设备都要执行
83.1.12.30设备
1 2 3 4 5 6 7 8 9 10
| tee /home/rocketmq/conf/namesrv.conf <<-'EOF' listenPort=9876 enableControllerInNamesrv=true controllerDLegerGroup=group1 controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878 controllerDLegerSelfId=n0 controllerStorePath=/home/rocketmq/controller/DledgerController enableElectUncleanMaster=true notifyBrokerRoleChanged=true EOF
|
83.1.12.31设备
1 2 3 4 5 6 7 8 9 10 11
| tee /home/rocketmq/conf/namesrv.conf <<-'EOF' listenPort=9876 enableControllerInNamesrv=true controllerDLegerGroup=group1 controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878 controllerDLegerSelfId=n2 controllerStorePath=/home/rocketmq/controller/DledgerController enableElectUncleanMaster=true notifyBrokerRoleChanged=true EOF
|
83.1.12.32设备
1 2 3 4 5 6 7 8 9 10
| tee /home/rocketmq/conf/namesrv.conf <<-'EOF' listenPort=9876 enableControllerInNamesrv=true controllerDLegerGroup=group1 controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878 controllerDLegerSelfId=n3 controllerStorePath=/home/rocketmq/controller/DledgerController enableElectUncleanMaster=true notifyBrokerRoleChanged=true EOF
|
三台设备都要执行,启动namesrv
1 2 3 4 5
| sh /home/rocketmq/bin/mqshutdown namesrv nohup sh /home/rocketmq/bin/mqnamesrv -c /home/rocketmq/conf/namesrv.conf > /home/rocketmq/logs/mqnamesrv.log 2>&1 &
# 查看日志是否启动成功 tail -f /home/rocketmq/logs/mqnamesrv.log 2>&1 &
|
Broker配置
1
| broker-a、broker-b-s这两台broker是配置在服务器31上,broker-b、broker-a-s这两台broker是配置在服务器32上。这两对主从节点在不同的服务器上,服务器30上没有部署broker。需要修改每台broker的配置文件。注意,同⼀台服务器上的两个broker保存路径不能⼀样。
|
broker-a-master
在服务器31上,进⼊到conf/2m-2s-async
⽂件夹内,修改broker-a.properties
⽂件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| cd /home/rocketmq/conf/2m-2s-async
vi broker-a.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerIP1=rocketmq-n1
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
abortFile=/home/rocketmq/store/abort
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
storeCheckpoint=/home/rocketmq/store/checkpoint
maxMessageSize=65536
|
broker-a-salve
在服务器32上,进⼊到conf/2m-2s-async
文件夹内,修改broker-a-s.properties
文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| cd /opt/home/rocketmq4.8.0/conf/2m-2s-async
vi broker-a-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerIP1=rocketmq-n2
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort==11011
abortFile=/data/rocketmq/store-slave/abort
storePathRootDir=/data/rocketmq/store-slave
storePathCommitLog=/data/rocketmq/store-slave/commitlog
storePathConsumeQueue=/data/rocketmq/store-slave/consumequeue
storePathIndex=/data/rocketmq/store-slave/index
storeCheckpoint=/data/rocketmq/store-slave/checkpoint
maxMessageSize=65536
|
broker-b-master
在服务器32上,进入到conf/2m-2s-async
文件夹内,修改broker-b.properties
文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| cd /home/rocketmq/conf/2m-2s-async
vi broker-b.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerIP1=rocketmq-n2
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
abortFile=/home/rocketmq/store/abort
storePathRootDir=/home/rocketmq/store
storePathCommitLog=/home/rocketmq/store/commitlog
storePathConsumeQueue=/home/rocketmq/store/consumequeue
storePathIndex=/home/rocketmq/store/index
storeCheckpoint=/home/rocketmq/store/checkpoint
maxMessageSize=65536
|
在服务器31上,进入到conf/2m-2s-async
文件夹内,修改broker-b-s.properties
文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| cd /home/rocketmq/conf/2m-2s-async
vi broker-b-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerIP1=rocketmq-n1
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=11011
abortFile=/home/rocketmq/store-slave/abort
storePathRootDir=/home/rocketmq/store-slave
storePathCommitLog=/home/rocketmq/store-slave/commitlog
storePathConsumeQueue=/home/rocketmq/store-slave/consumequeue
storePathIndex=/home/rocketmq/store-slave/index
storeCheckpoint=/home/rocketmq/store-slave/checkpoint
maxMessageSize=65536
|
在服务器31中启动broker-a(master)
和broker-b-s(slave)
1 2 3
| cd /home/rocketmq/bin nohup ./mqbroker -c ../conf/2m-2s-async/broker-a.properties > /home/rocketmq/logs/broker-a.out 2>1 & nohup ./mqbroker -c ../conf/2m-2s-async/broker-b-s.properties > /home/rocketmq/logs/broker-b-s.out 2>1 &
|
在服务器32中启动broker-b(master)
和broker-a-s(slave)
1 2 3
| cd /home/rocketmq/bin nohup ./mqbroker -c ../conf/2m-2s-async/broker-b.properties > /home/rocketmq/logs/broker-b.out 2>1 & nohup ./mqbroker -c ../conf/2m-2s-async/broker-a-s.properties > /home/rocketmq/logs/broker-a-s.out 2>1 &
|