Windows环境下搭建RocketMq集群(双主双从)

发布于:2024-06-11 ⋅ 阅读:(44) ⋅ 点赞:(0)

一、官网下载Rocket安装包

下载地址:https://rocketmq.apache.org/dowloading/releases/下载 | RocketMQhttps://rocketmq.apache.org/dowloading/releases/

博主这里下载的是4.9.8版本的,大家根据自己的需要下载对应的版本即可。

二、环境变量配置

环境变量配置这里就不做过多的赘述了,相信大家都知道怎么配置环境变量了。

ROCKETMQ_HOME   :D:\software_work\rocketmq-all-4.9.8-bin-release

%ROCKETMQ_HOME%\bin

三、修改日志配置路径

3.1、修改之前,先到安装目录下创建几个文件夹,用来存放日志、数据、自己的配置文件等。

3.2、打开conf目录,修改以下文件中的${user.name} ,替换成安装路径D:\software_work\rocketmq-all-4.9.8-bin-release

查找并替换就OK了。

3.3、把mq自带的集群下的配置文件拷贝到myconf目录下,我这里选择的是双主双从异步形式

并新建namesrv1.properties和namesrv2.properties两个文件,分别在这两个文件中定义监听的端口,如下:

namesrv1.properties文件中内容为:listenPort=9876

namesrv2.properties文件中内容为:listenPort=9877

3.4、把以下配置分别拷贝到对应的配置文件中,配置就完成了。

broker-a.properties文件内容如下:

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876;127.0.0.1:9877
#在发送消息时,自动创建服务器不存在的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=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/broker-a
#commitLog 存储路径
storePathCommitLog=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/broker-a/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/broker-a/consumequeue
#消息索引存储路径
storePathIndex=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/broker-a/index
#checkpoint 文件存储路径
storeCheckpoint=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/checkpoint
#abort 文件存储路径
abortFile=D:/software_work/rocketmq-all-4.9.8-bin-release/store/master1/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessageThreadPoolNums=128

broker-a-s.properties文件内容如下:
 #所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-a-s
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876;127.0.0.1:9877
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10921
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/broker-a-s
#commitLog 存储路径
storePathCommitLog=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/broker-a-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/broker-a-s/consumequeue
#消息索引存储路径
storePathIndex=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/broker-a-s/index
#checkpoint 文件存储路径
storeCheckpoint=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/checkpoint
#abort 文件存储路径
abortFile=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave1/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

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

broker-b-s.properties文件内容如下:
#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,名字可重复,为了管理,每个master起一个名字,他的slave同他,eg:Amaster叫broker-a,他的slave也叫broker-a
brokerName=broker-b-s
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876;127.0.0.1:9877
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10951
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/broker-b-s
#commitLog 存储路径
storePathCommitLog=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/broker-b-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/broker-b-s/consumequeue
#消息索引存储路径
storePathIndex=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/broker-b-s/index
#checkpoint 文件存储路径
storeCheckpoint=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/checkpoint
#abort 文件存储路径
abortFile=D:/software_work/rocketmq-all-4.9.8-bin-release/store/slave2/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

四、启动rocketmq

博主这里为了方便启动,写了一个脚本,直接执行所有的启动文件,大家可以参考。

创建一个cmd文件,将下列启动命令复制进去,双击运行cmd文件即可。

# 启动端口号
set path=D:\software_work\rocketmq-all-4.9.8-bin-release
start %path%\bin\mqnamesrv.cmd -c %path%\myconf\namesrv1.properties
start %path%\bin\mqnamesrv.cmd -c %path%\myconf\namesrv2.properties


# 启动配置
start %path%\bin\mqbroker.cmd -c %path%\myconf\broker-a.properties
start %path%\bin\mqbroker.cmd -c %path%\myconf\broker-a-s.properties
start %path%\bin\mqbroker.cmd -c %path%\myconf\broker-b.properties
start %path%\bin\mqbroker.cmd -c %path%\myconf\broker-b-s.properties

五、图形化界面配置及启动

5.1、修改图形化界面rocketmq-console项目中的application.properties文件中的

rocketmq.config.namesrvAddr=127.0.0.1:9876;127.0.0.1:9877

5.2、maven打包

mvn clean package -DskipTests=true

5.3、运行并启动控制台

java -jar rocketmq-console-ng-1.0.1.jar

5.4、浏览器访问,查看cluster内容

图形化界面的资源下载路径如下:

https://download.csdn.net/download/gonghua0502/89419927


网站公告

今日签到

点亮在社区的每一天
去签到