执行如下命令
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 是我指定的日志目录
修改NameServer日志路径(非必要)Vim 编辑器的替换命令
:s/
/ / :%s/AA/BB/g # 在全局范围内(%)查找AA并将之替换为BB,所有出现都会被替换(g) :s/AA/BB/g # 在当前行内查找AA并将之替换为BB,所有出现都会被替换(g)
上面命令中的 代表转义符
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博客
停止集群 停止brokersh bin/mqshutdown broker停止NameServer
sh bin/mqshutdown namesrv



