目录
一、集群架构
二、准备rocketmqOS1主机
三、修改rocketmqOS1配置文件
配置文件位置
修改broker-a.properties
修改broker-b-s.properties
其它配置
四、准备rocketmqOS2主机
五、修改rocketmqOS2配置文件
修改broker-b.properties
修改broker-a-s.properties
六、启动服务器
启动NameServer集群
启动两个Master
启动两个Slave
七、mqadmin命令
准备rocketmqOS主机,并修改配置。指定主机名为rocketmqOS1。
# 指定整个broker集群的名称,或者说是RocketMQ集群的名称 brokerClusterName=DefaultCluster # 指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群 brokerName=broker-a # master的brokerId为0 brokerId=0 # 指定删除消息存储过期文件的时间为凌晨4点 deleteWhen=04 # 指定未发生更新的消息存储文件的保留时长为48小时,48小时后过期,将会被删除 fileReservedTime=48 # 指定当前broker为异步复制master brokerRole=ASYNC_MASTER # 指定刷盘策略为异步刷盘 flushDiskType=ASYNC_FLUSH # 指定Name Server的地址 namesrvAddr=192.168.59.164:9876;192.168.59.165:9876
brokerClusterName=DefaultCluster # 指定这是另外一个master-slave集群 brokerName=broker-b # slave的brokerId为非0 brokerId=1 deleteWhen=04 fileReservedTime=48 # 指定当前broker为slave brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876 # 指定Broker对外提供服务的端口,即Broker与producer与consumer通信的端口。默认 10911。由于当前主机同时充当着master1与slave2,而前面的master1使用的是默认端口。这 里需要将这两个端口加以区分,以区分出master1与slave2 listenPort=11911 # 指定消息存储相关的路径。默认路径为~/store目录。由于当前主机同时充当着master1与 slave2,master1使用的是默认路径,这里就需要再指定一个不同路径 storePathRootDir=~/store-s storePathCommitLog=~/store-s/commitlog storePathConsumeQueue=~/store-s/consumequeue storePathIndex=~/store-s/index storeCheckpoint=~/store-s/checkpoint abortFile=~/store-s/abort
#指定整个broker集群的名称,或者说是RocketMQ集群的名称 brokerClusterName=rocket-MS #指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群 brokerName=broker-a #0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分号分割 namesrvAddr=nameserver1:9876;nameserver2:9876 #默认为新建Topic所创建的队列数 defaultTopicQueueNums=4 #是否允许 Broker 自动创建Topic,建议生产环境中关闭 autoCreateTopicEnable=true #是否允许 Broker 自动创建订阅组,建议生产环境中关闭 autoCreateSubscriptionGroup=true #Broker对外提供服务的端口,即Broker与producer与consumer通信的端口 listenPort=10911 #HA高可用监听端口,即Master与Slave间通信的端口,默认值为listenPort+1 haListenPort=10912 #指定删除消息存储过期文件的时间为凌晨4点 deleteWhen=04 #指定未发生更新的消息存储文件的保留时长为48小时,48小时后过期,将会被删除 fileReservedTime=48 #指定commitLog目录中每个文件的大小,默认1G mapedFileSizeCommitLog=1073741824 #指定ConsumeQueue的每个Topic的每个Queue文件中可以存放的消息数量,默认30w条 mapedFileSizeConsumeQueue=300000 #在清除过期文件时,如果该文件被其他线程所占用(引用数大于0,比如读取消息),此时会阻止 此次删除任务,同时在第一次试图删除该文件时记录当前时间戳。该属性则表示从第一次拒绝删除 后开始计时,该文件最多可以保留的时长。在此时间内若引用数仍不为0,则删除仍会被拒绝。不过 时间到后,文件将被强制删除 destroyMapedFileIntervalForcibly=120000 #指定commitlog、consumequeue所在磁盘分区的最大使用率,超过该值,则需立即清除过期文件 diskMaxUsedSpaceRatio=88 #指定store目录的路径,默认在当前用户主目录中 storePathRootDir=/usr/local/rocketmq-all-4.5.0/store #commitLog目录路径 storePathCommitLog=/usr/local/rocketmq-all-4.5.0/store/commitlog #consumeueue目录路径 storePathConsumeQueue=/usr/local/rocketmq-all-4.5.0/store/consumequeue #index目录路径 storePathIndex=/usr/local/rocketmq-all-4.5.0/store/index #checkpoint文件路径 storeCheckpoint=/usr/local/rocketmq-all-4.5.0/store/checkpoint #abort文件路径 abortFile=/usr/local/rocketmq-all-4.5.0/store/abort #指定消息的最大大小 maxMessageSize=65536 #Broker的角色 # - ASYNC_MASTER 异步复制Master # - SYNC_MASTER 同步双写Master # - SLAVE brokerRole=SYNC_MASTER #刷盘策略 # - ASYNC_FLUSH 异步刷盘 # - SYNC_FLUSH 同步刷盘 flushDiskType=SYNC_FLUSH #发消息线程池数量 sendMessageThreadPoolNums=128 #拉消息线程池数量 pullMessageThreadPoolNums=128 #强制指定本机IP,需要根据每台机器进行修改。官方介绍可为空,系统默认自动识别,但多网卡 时IP地址可能读取错误 brokerIP1=192.168.3.105
准备rocketmqOS1主机,并修改配置。指定主机名为rocketmqOS2。
brokerClusterName=DefaultCluster brokerName=broker-b brokerId=0 deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876
brokerClusterName=DefaultCluster brokerName=broker-a brokerId=1 deleteWhen=04 fileReservedTime=48 brokerRole=SLAVE flushDiskType=ASYNC_FLUSH namesrvAddr=192.168.59.164:9876;192.168.59.165:9876 listenPort=11911 storePathRootDir=~/store-s storePathCommitLog=~/store-s/commitlog storePathConsumeQueue=~/store-s/consumequeue storePathIndex=~/store-s/index storeCheckpoint=~/store-s/checkpoint abortFile=~/store-s/abort
nohup sh bin/mqnamesrv & tail -f ~/logs/rocketmqlogs/namesrv.log
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties & tail -f ~/logs/rocketmqlogs/broker.log
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties & tail -f ~/logs/rocketmqlogs/broker.log
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties & tail -f ~/logs/rocketmqlogs/broker.log
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties & tail -f ~/logs/rocketmqlogs/broker.log
运维专用命令,后续再出