Bootstrap

关于rocketMq的windows集群部署工作日志

关于rocketMq的windows集群部署工作日志

最近需要在公司提供的windows环境上部署rocketmq集群做测试用,网上找了很多文章,自己也是刚接触不断摸索,写一下部署的过程备忘。主要思路在两台机器上部署rocketMq集群,为了简单每台机器上启动1个masterbroker和一个slavebroker。

下载rocketmq包

rocketmq包下载链接

修改配置

解压到合适的目录,在conf文件夹下你就会发现2m-2s-async文件夹,第一台服务器修改broker-a和broker-a-s两个配置文件,第二台服务器修改b对应的两个配置文件,这里以前两个为例。

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=10.240.124.8:9876;10.240.124.7:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#限制的消息大小
maxMessageSize=65536
waitTimeMillsInSendQueue=3000
osPageCacheBusyTimeOutMills=5000
flushCommitLogLeastPages=12
flushConsumeQueueLeastPages=6
flushCommitLogThoroughInterval=30000
flushConsumeQueueThoroughInterval=180000
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盘方式
#- ASYNC_FLUSH 异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#发消息线程池数量
sendMessageThreadPoolNums=128
#拉消息线程池数量
pullMessageThreadPoolNums=128
useReentrantLockWhenPutMessage=true

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=10.240.124.8:9876;10.240.124.7:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,
listenPort=10931
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#存储路径
storePathRootDir=/store/broker-a-s
#commitLog 存储路径
storePathCommitLog=/store/broker-a-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/store/broker-a-s/consumequeue
#消息索引存储路径
storePathIndex=/store/broker-a-s/index
#checkpoint 文件存储路径
storeCheckpoint=/store/checkpoint
#abort 文件存储路径
abortFile=/store/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

坑:a配置文件存储路径用的是默认配置,a-s配置文件就不能在用默认配置,不然启动时时报错

配置环境变量

ROCKETMQ_HOME
路径是压缩包解压后README.md所在的路径

启动

按照这个配置修改第二台机器上对应目录的broker-b、broker-b-s两个配置文件。分别启动,第一台服务器启动命令为例,命令行到bin文件下
nameserver启动

start mqnamesrv.cmd

broker启动

start mqbroker.cmd -c ../conf/2m-2s-async/
broker-a.properties
start mqbroker.cmd -c ../conf/2m-2s-async/
broker-a-s.properties

启动mq管理控制台

把rokcetmq-console项目下载下来,具体可参考其他文章
效果图片:
在这里插入图片描述

后记

新手上路,有什么不对的地方欢迎大家指正

;