- 使用中间件版本:rocketmq-4.5.2
- 环境介绍及角色划分
这里采用俩台机器做集群的搭建,172.0.0.1 以及 172.0.0.2
服务器172.0.0.1 做为a-master与b-slave。
服务器172.0.0.2 做为b-master与a-slave。
- 配置讲解图(主要说明区分点)
- 配置rocketmq环境变量,这里也说明一下需要在部署rocketmq的前一步安装好jdk的环境变量
vim ~/.bash_profile (俩台机器都需要配置)
export JAVA_HOME=/data/soft/jdk1.8.0_311
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=${JAVA_HOME}/jre
export ROCKETMQ_HOME=/data/soft/rocketmq-4.5.2
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
- 创建数据存储目录(用于在接下来的配置文件中进行rocketmq的数据存储,需要在俩台机器上都执行,目录可根据实际情况自定义),由于同一台机器上既有master又有slave节点所以需要创建不同目录。
mkdir -p /data/soft/dataMQ/stores
mkdir -p /data/soft/dataMQ/stores/commitlogs
mkdir -p /data/soft/dataMQ/stores/consumequeues
mkdir -p /data/soft/dataMQ/stores/indexs
mkdir -p /data/soft/dataMQ/stores/checkpoints
mkdir -p /data/soft/dataMQ/stores/aborts
mkdir -p /data/soft/dataMQ/store
mkdir -p /data/soft/dataMQ/store/commitlogs
mkdir -p /data/soft/dataMQ/store/consumequeues
mkdir -p /data/soft/dataMQ/store/indexs
mkdir -p /data/soft/dataMQ/store/checkpoints
mkdir -p /data/soft/dataMQ/store/aborts
- 接下来修改配置文件,首先我们先修改172.0.0.1中的配置文件,共需要修改俩个配置文件分别是
rocketmq-4.5.2/conf/2m-2s-async/broker-a.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0表示Master >0表示Slave
brokerId=0
#nameserver地址 分号分割 根据/etc/hosts的映射查找IP
namesrvAddr=172.0.0.1:9876;172.0.0.2:9876
#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建队列组,建议线下允许,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间 默认凌晨4点
deleteWhen=04
#文件保留时间 默认48小时
fileReservedTime=48
#commitLog每个文件的默认大小1G
mapedFileSizeCommitLog=1073741824
#consumeQueue默认存30w条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#储存路径
storePathRootDir=/data/soft/dataMQ/store
#CommitLog存储路径
storePathCommitLog=/data/soft/dataMQ/store/commitlog
#消费队列储存路径
storePathConsumeQueue=/data/soft/dataMQ/store/consumequeue
#消息索引存储路径
storePathIndex=/bonc/data/dataMQ/store/index
#checkpoint文件存储路径
storeCheckPoint=/data/data/dataMQ/store/checkpoint
#abort文件存储路径
abortFile=/bonc/data/dataMQ/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker的角色 -SYNC_MASTER同步复制Master -ASYNC_MASTER异步复制MASTER
brokerRole=SYNC_MASTER
#刷盘方式 异步和同步
flushDiskType=ASYNC_FLUSH
rocketmq-4.5.2/conf/2m-2s-async/broker-b-s.properties
brokerClusterName=rocketmq-cluster
brokerName=broker-b
brokerId=1
namesrvAddr=172.0.0.1:9876;172.0.0.2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=11011
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/data/soft/dataMQ/stores
storePathCommitLog=/data/soft/dataMQ/stores/commitlogs
storePathConsumeQueue=/data/soft/dataMQ/stores/consumequeues
storePathIndex=/data/soft/dataMQ/stores/indexs
storeCheckPoint=/data/soft/dataMQ/stores/checkpoints
abortFile=/data/soft/dataMQ/stores/aborts
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
- 接下来修改配置文件,首先我们先修改172.0.0.2中的配置文件,共需要修改俩个配置文件分别是
rocketmq-4.5.2/conf/2m-2s-async/broker-b.properties
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0表示Master >0表示Slave
brokerId=0
#nameserver地址 分号分割 根据/etc/hosts的映射查找IP
namesrvAddr=172.0.0.1:9876;172.0.0.2:9876
#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许broker自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建队列组,建议线下允许,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间 默认凌晨4点
deleteWhen=04
#文件保留时间 默认48小时
fileReservedTime=48
#commitLog每个文件的默认大小1G
mapedFileSizeCommitLog=1073741824
#consumeQueue默认存30w条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#储存路径
storePathRootDir=/data/soft/dataMQ/store
#CommitLog存储路径
storePathCommitLog=/data/soft/dataMQ/store/commitlog
#消费队列储存路径
storePathConsumeQueue=/data/soft/dataMQ/store/consumequeue
#消息索引存储路径
storePathIndex=/data/soft/dataMQ/store/index
#checkpoint文件存储路径
storeCheckPoint=/data/soft/dataMQ/store/checkpoint
#abort文件存储路径
abortFile=/data/soft/dataMQ/store/abort
#限制的消息大小
maxMessageSize=65536
#Broker的角色 -SYNC_MASTER同步复制Master -ASYNC_MASTER异步复制MASTER
brokerRole=SYNC_MASTER
#刷盘方式 异步和同步
flushDiskType=ASYNC_FLUSH
rocketmq-4.5.2/conf/2m-2s-async/broker-a-s.properties
brokerClusterName=rocketmq-cluster
brokerName=broker-a
brokerId=1
namesrvAddr=172.0.0.1:9876;172.0.0.2:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=11011
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/data/soft/dataMQ/stores
storePathCommitLog=/data/soft/dataMQ/stores/commitlogs
storePathConsumeQueue=/data/soft/dataMQ/stores/consumequeues
storePathIndex=/data/soft/dataMQ/stores/indexs
storeCheckPoint=/data/soft/dataMQ/stores/checkpoints
abortFile=/data/soft/dataMQ/stores/aborts
maxMessageSize=65536
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
- 修改启动文件(俩台机器都需要修改)
rocketmq-4.5.2/bin/runserver.sh
rocketmq-4.5.2/bin/runbroker.sh
- 按照从上到下的顺序启动rocketmq集群
启动NamesrvStartup需要在俩台机器上执行
nohup /data/soft/rocketmq-4.5.2/bin/mqnamesrv > /data/soft/rocketmq-4.5.2/logs/mqnamesrv.log 2>&1 &
启动BrokerMaster(A)节点(这里要注意引用的配置文件)
nohup /data/soft/rocketmq-4.5.2/bin/mqbroker -c /data/soft/rocketmq-4.5.2/conf/2m-2s-async/broker-a.properties > /data/soft/rocketmq-4.5.2/logs/broker-a.log 2>&1 &
启动BrokerMaster(B)节点(这里要注意引用的配置文件)
nohup /data/soft/rocketmq-4.5.2/bin/mqbroker -c /data/soft/rocketmq-4.5.2/conf/2m-2s-async/broker-b.properties > /data/soft/rocketmq-4.5.2/logs/broker-b.log 2>&1 &
启动BrokerSlave(A)节点(这里要注意引用的配置文件)
nohup /data/soft/rocketmq-4.5.2/bin/mqbroker -c /data/soft/rocketmq-4.5.2/conf/2m-2s-async/broker-a-s.properties > /data/soft/rocketmq-4.5.2/logs/broker-as.log 2>&1 &
启动BrokerSlave(B)节点(这里要注意引用的配置文件)
nohup /data/soft/rocketmq-4.5.2/bin/mqbroker -c /data/soft/rocketmq-4.5.2/conf/2m-2s-async/broker-b-s.properties > /data/soft/rocketmq-4.5.2/logs/broker-bs.log 2>&1 &
- 查看节点启动状态(俩台机器一致)