RocketMQ集群原理及集群搭建

RocketMQ各个角色信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集群搭建模式

在这里插入图片描述

集群工作流程

在这里插入图片描述

集群搭建

同步双写
在这里插入图片描述

1. 主机规划

序号 ip 角色 架构模式
1 10.211.55.10 namesrv,brokerserver Master1,Slave2
2 10.211.55.8 namesrv,brokerserver Master2,Slave2

2. Host配置如下

#nameserver
10.211.55.10 rocketmq-nameserver1
10.211.55.8 rocketmq-nameserver2
#broker
10.211.55.10 rocketmq-master1
10.211.55.10 rocketmq-slave2
10.211.55.8 rocketmq-master2
10.211.55.8 rocketmq-slave1

3. 关闭或者设置相关防火墙或者放开相关rocketmq端口

#关闭防火墙
systemctl stop firewalld.service
#查看防火墙状态
firewall-cmd --state
#禁止防火墙开机启动
systemctl disable firewalld.service

在这里插入图片描述
RocketMQ默认使用3个端口:9876 、10911 、11011 。如果防火墙没有关闭的话,那么防火墙就必须开放这些端口:

# 开放name server默认端口
firewall-cmd --remove-port=9876/tcp --permanent
# 开放master默认端口
firewall-cmd --remove-port=10911/tcp --permanent
# 开放slave默认端口 (当前集群模式可不开启)
firewall-cmd --remove-port=11011/tcp --permanent 
# 重启防火墙
firewall-cmd --reload

4. 环境变量配置

设置.bash_profile相关配置
在这里插入图片描述

5.创建消息存储路径

#在同一宿主机上面如果有多个broker创建的相关路径不能冲突,具体如下同一宿主机上的broker路径配置
mkdir -p /usr/local/rocketmq/store
mkdir -p /usr/local/rocketmq/store/commitlog
mkdir -p /usr/local/rocketmq/store/consumequeque
mkdir -p /usr/local/rocketmq/store/index

6.broker配置文件

修改 10.211.55.10 的 broker-a.properties,master1

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/storeamaster
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/storeamaster/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/storeamaster/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/storeamaster/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/storeamaster/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/storeamaster/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

修改 10.211.55.10 的 broker-b-s.properties,slave2

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/storebslaver
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/storebslaver/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/storebslaver/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/storebslaver/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/storebslaver/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/storebslaver/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

修改 10.211.55.8 的 broker-b.properties,master2

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/storebmaster
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/storebmaster/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/storebmaster/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/storebmaster/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/storebmaster/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/storebmaster/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

修改 10.211.55.8 的 broker-a-s.properties,slave1

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=11011
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/usr/local/rocketmq/storeaslaver
#commitLog 存储路径
storePathCommitLog=/usr/local/rocketmq/storeaslaver/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/usr/local/rocketmq/storeaslaver/consumequeue
#消息索引存储路径
storePathIndex=/usr/local/rocketmq/storeaslaver/index
#checkpoint 文件存储路径
storeCheckpoint=/usr/local/rocketmq/storeaslaver/checkpoint
#abort 文件存储路径
abortFile=/usr/local/rocketmq/storeaslaver/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

7. 如果是本机测试修改runserver.sh,和runbroker.sh里面的最大和初始化内存,改为256m

在这里插入图片描述

服务启动

1.启动namesrv集群

分别进入10和8机器
1.cd /root/rocketmq-all-4.9.1-bin-release/bin
2.nohup sh mqnamesrv &

2.启动broker集群

在10.211.55.10启动master1和slave2

nohup sh mqbroker -c /root/rocketmq-all-4.9.1-bin-release/conf/2m-2s-sync/broker-a.properties &
nohup sh mqbroker -c /root/rocketmq-all-4.9.1-bin-release/conf/2m-2s-sync/broker-b-s.properties &

在10.211.55.8启动master2和slave1

nohup sh mqbroker -c /root/rocketmq-all-4.9.1-bin-release/conf/2m-2s-sync/broker-b.properties &
nohup sh mqbroker -c /root/rocketmq-all-4.9.1-bin-release/conf/2m-2s-sync/broker-a-s.properties &

3.查看mq启动情况如下

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Persistence___/article/details/120625733