下载安装包
执行如下命令
wget https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
或https://rocketmq.apache.org/release_notes/release-notes-4.8.0/https://rocketmq.apache.org/release_notes/release-notes-4.8.0/ 官网下载安装包后上传至服务器文件夹。
解压
unzip rocketmq-all-4.8.0-bin-release.zip
重命名
mv rocketmq-all-4.8.0-bin-release rocketmq4.8
修改服务器1 centos7_01 配置文件
新建日志和文件的存储目录
rocketmq根目录下新建broker-a和broker-b的文件存储目录
mkdir storeAMaster
mkdir storeBSlave
mkdir logs
进入2m-2s-async目录 /rocketmq/rocketmq4.8/conf/2m-2s-async
修改broker-a.properties
#指定整个broker集群的名称,或者说是RocketMQ集群的名称
brokerClusterName=rocket-MS
#指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=centos7_01:9876;centos7_02: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=/opt/software/rocketmq/rocketmq4.8/storeAMaster
#commitLog目录路径
storePathCommitLog=/opt/software/rocketmq/rocketmq4.8/storeAMaster/commitlog
#consumeueue目录路径
storePathConsumeQueue=/opt/software/rocketmq/rocketmq4.8/storeAMaster/consumequeue
#index目录路径
storePathIndex=/opt/software/rocketmq/rocketmq4.8/storeAMaster/index
#checkpoint文件路径
storeCheckpoint=/opt/software/rocketmq/rocketmq4.8/storeAMaster/checkpoint
#abort文件路径
abortFile=/opt/software/rocketmq/rocketmq4.8/storeAMaster/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.70.150
修改broker-b-s.properties
#指定整个broker集群的名称,或者说是RocketMQ集群的名称
brokerClusterName=rocket-MS
#指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=centos7_01:9876;centos7_02:9876
#默认为新建Topic所创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议生产环境中关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议生产环境中关闭
autoCreateSubscriptionGroup=true
#Broker对外提供服务的端口,即Broker与producer与consumer通信的端口 因为同一台机器部署了broker-a 和broker-b 这里端口不能重复
listenPort=11911
#HA高可用监听端口,即Master与Slave间通信的端口,默认值为listenPort+1
haListenPort=11912
#指定删除消息存储过期文件的时间为凌晨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=/opt/software/rocketmq/rocketmq4.8/storeBSlave
#commitLog目录路径
storePathCommitLog=/opt/software/rocketmq/rocketmq4.8/storeBSlave/commitlog
#consumeueue目录路径
storePathConsumeQueue=/opt/software/rocketmq/rocketmq4.8/storeBSlave/consumequeue
#index目录路径
storePathIndex=/opt/software/rocketmq/rocketmq4.8/storeBSlave/index
#checkpoint文件路径
storeCheckpoint=/opt/software/rocketmq/rocketmq4.8/storeBSlave/checkpoint
#abort文件路径
abortFile=/opt/software/rocketmq/rocketmq4.8/storeBSlave/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.70.150
修改broker启动jvm内存参数
进入bin目录
vim runbroker.sh
修改nameServer启动jvm参数
vim runserver.sh
修改broker日志路径(非必要)
进入目录 /opt/software/rocketmq/rocketmq4.8/conf
vim logback_broker.xml
默认日志路径为当前用户目录logs文件夹
修改为上面新建的指定目录,vim编辑器内执行如下命令
:%s/${user.home}/\/opt\/software\/rocketmq\/rocketmq4.8/g
其中 /opt/software/rocketmq/rocketmq4.8/logs 是我指定的日志目录
Vim 编辑器的替换命令
:s
/
<find
-
this>
/
<replace
-
with
-
this>
/
<flags>
:%s/AA/BB/g # 在全局范围内(%)查找AA并将之替换为BB,所有出现都会被替换(g) :s/AA/BB/g # 在当前行内查找AA并将之替换为BB,所有出现都会被替换(g)
上面命令中的 \ 代表转义符
修改NameServer日志路径(非必要)
vim logback_namesrv.xml 输入如下命令
:%s/${user.home}/\/opt\/software\/rocketmq\/rocketmq4.8/g
修改服务器2 centos7_02 配置文件
新建日志和文件的存储目录
rocketmq根目录下新建broker-a和broker-b的文件存储目录
mkdir storeBMaster
mkdir storeASlave
mkdir logs
进入2m-2s-async目录 /rocketmq/rocketmq4.8/conf/2m-2s-async
修改vim broker-b.properties
#指定整个broker集群的名称,或者说是RocketMQ集群的名称
brokerClusterName=rocket-MS
#指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=centos7_01:9876;centos7_02: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=/opt/software/rocketmq/rocketmq4.8/storeBMaster
#commitLog目录路径
storePathCommitLog=/opt/software/rocketmq/rocketmq4.8/storeBMaster/commitlog
#consumeueue目录路径
storePathConsumeQueue=/opt/software/rocketmq/rocketmq4.8/storeBMaster/consumequeue
#index目录路径
storePathIndex=/opt/software/rocketmq/rocketmq4.8/storeBMaster/index
#checkpoint文件路径
storeCheckpoint=/opt/software/rocketmq/rocketmq4.8/storeBMaster/checkpoint
#abort文件路径
abortFile=/opt/software/rocketmq/rocketmq4.8/storeBMaster/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.70.151
修改vim broker-a-s.properties
#指定整个broker集群的名称,或者说是RocketMQ集群的名称
brokerClusterName=rocket-MS
#指定master-slave集群的名称。一个RocketMQ集群可以包含多个master-slave集群
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=centos7_01:9876;centos7_02:9876
#默认为新建Topic所创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议生产环境中关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议生产环境中关闭
autoCreateSubscriptionGroup=true
#Broker对外提供服务的端口,即Broker与producer与consumer通信的端口 因为同一台机器部署了broker-a 和broker-b 这里端口不能重复
listenPort=11911
#HA高可用监听端口,即Master与Slave间通信的端口,默认值为listenPort+1
haListenPort=11912
#指定删除消息存储过期文件的时间为凌晨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=/opt/software/rocketmq/rocketmq4.8/storeASlave
#commitLog目录路径
storePathCommitLog=/opt/software/rocketmq/rocketmq4.8/storeASlave/commitlog
#consumeueue目录路径
storePathConsumeQueue=/opt/software/rocketmq/rocketmq4.8/storeASlave/consumequeue
#index目录路径
storePathIndex=/opt/software/rocketmq/rocketmq4.8/storeASlave/index
#checkpoint文件路径
storeCheckpoint=/opt/software/rocketmq/rocketmq4.8/storeASlave/checkpoint
#abort文件路径
abortFile=/opt/software/rocketmq/rocketmq4.8/storeASlave/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.70.151
修改JVM启动参数
同上服务器1
修改日志路径
同上服务器1
启动集群
启动NameServer集群
分别在两个rocketmq4.8根目录下(/opt/software/rocketmq/rocketmq4.8/) 执行如下命令
nohup sh bin/mqnamesrv &
tailf -200 /opt/software/rocketmq/rocketmq4.8/logs/rocketmqlogs/namesrv.log
NameServer启动成功
启动两个Master
服务器1 centos7_01 进入rocketmq4.8根目录执行
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &
服务器2 centos7_02 进入rocketmq4.8根目录执行
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties &
broker-a 和 broker-b启动成功
启动两个Slave
服务器1 centos7_01 进入rocketmq4.8根目录执行
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties &
服务器2 centos7_02 进入rocketmq4.8根目录执行
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &
broker-a-s 和broker-b-s启动成功
安装RocketMQ Dashboard 图形化界面
参考连接:Docker 下安装RocketMQ Dashboard (Console)_RunTimeExcepti0n的博客-CSDN博客
停止集群
停止broker
sh bin/mqshutdown broker
停止NameServer
sh bin/mqshutdown namesrv