一.首先需要四个服务器
二.下载rocketm
q
Apache:
百度网盘下载
链接:https://pan.baidu.com/s/1UYT1OS8IbG04p8VSdx6t8Q
提取码:84ok
网页下载地址:
https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip
三.安装
1.在/usr/local/目录下创建rocketmq-
4.7.1
文件夹 mkdir /usr/local/rocketmq-4.7.1
2.解压
unzip rocketmq-all-4.7.1-bin-release.zip
-d
/usr/local/rocketmq-4.7.1
(这个路径自己决定)
3.建立软连接 便于操作(可以不用管此操作) ln -s rocketmq-
4.7.1
/ rocketmq
4.
创建rocketmq相关存储路径(根据当前broker的角色创建对应目录,集群模式,所以每个服务器都要创建)
mkdir
/apps/usr/rocketmq/
master
mkdir /apps/usr/rocketmq/master/store
mkdir
/apps/usr/rocketmq/slave
mkdir
/apps
/usr/rocketmq/slave/store
创建日志文件夹
mkdir
/apps/usr/rocketmq/logs
格式化rocketmq目录相关日志 (就是将你的mq打印日志修改成你上面建的地址,这样就可以启动后出现问题 去
/apps/usr/rocketmq/logs查看日志
)
执行命令:
cd
/usr/local/rocketmq-
4.7.1
/rocketmq-all-4.7.1-bin-release/conf
/conf && sed -i 's#${user.home}#/apps/usr/rocketmq#g' *.xml
5. 修改jvm启动参数(
修改runserver.sh(
-Xms256m -Xmx256m -Xmn256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=320m
) 和 runbroker.sh(
-Xms256m -Xmx256m -Xmn256m
)中的启动内存配置,在mq中bin文件下,不修改启动时候容易报错
)
6. runbroker.sh配置信息
runserver.sh配置信息
7.
这里注意一下,不同服务器数量搭建不同架构模式的rocketmq集群是不同的
下面搭建的模式是2s-2s-async(两主两从异步同步模式),进入配置文件夹cd /usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release/conf
如果要建立三主三从异步复制的话多建立一个文件夹其他情况相同
8.进入2m-2s-async目录
9.我将每个文件复制在这里
主:broker-a.properties
#所属集群名字
brokerClusterName=rocketmq-aspire
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.95.130:9876;192.168.95.131:9876;192.168.95.132:9876;192.168.95.133:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=01
#文件保留时间,默认 48 小时
fileReservedTime=72
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/apps/usr/rocketmq/master/store
#commitLog 存储路径
#storePathCommitLog=/apps/usr/rocketmq/master/store/commitlog
#消费队列存储路径存储路径
#storePathConsumeQueue=/apps/usr/rocketmq/master/store/consumequeue
#消息索引存储路径
#storePathIndex=/apps/usr/rocketmq/master/store/index
#checkpoint 文件存储路径
#storeCheckpoint=/apps/usr/rocketmq/master/store/checkpoint
#abort 文件存储路径
#abortFile=/apps/usr/rocketmq/master/store/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
#拉消息线程池数量
#pullMessaeThreadPoolNums=128
从:broker-a-s.properties
#所属集群名字
brokerClusterName=rocketmq-aspire
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.95.130:9876;192.168.95.131:9876;192.168.95.132:9876;192.168.95.133:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=01
#文件保留时间,默认 48 小时
fileReservedTime=72
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/apps/usr/rocketmq/slave/store
#commitLog 存储路径
#storePathCommitLog=/apps/usr/rocketmq/slave/store/commitlog
#消费队列存储路径存储路径
#storePathConsumeQueue=/apps/usr/rocketmq/slave/store/consumequeue
#消息索引存储路径
#storePathIndex=/apps/usr/rocketmq/slave/store/index
#checkpoint 文件存储路径
#storeCheckpoint=/apps/usr/rocketmq/slave/store/checkpoint
#abort 文件存储路径
#abortFile=/apps/usr/rocketmq/slave/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
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessaeThreadPoolNums=128
主:broker-b.properties
#所属集群名字
brokerClusterName=rocketmq-aspire
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=192.168.95.130:9876;192.168.95.131:9876;192.168.95.132:9876;192.168.95.133:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=01
#文件保留时间,默认 48 小时
fileReservedTime=72
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/apps/usr/rocketmq/master/store
#commitLog 存储路径
#storePathCommitLog=/apps/usr/rocketmq/master/store/commitlog
#消费队列存储路径存储路径
#storePathConsumeQueue=/apps/usr/rocketmq/master/store/consumequeue
#消息索引存储路径
#storePathIndex=/apps/usr/rocketmq/master/store/index
#checkpoint 文件存储路径
#storeCheckpoint=/apps/usr/rocketmq/master/store/checkpoint
#abort 文件存储路径
#abortFile=/apps/usr/rocketmq/master/store/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
#拉消息线程池数量
#pullMessaeThreadPoolNums=128
从:
broker-a-s.properties
#所属集群名字
brokerClusterName=rocketmq-aspire
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
namesrvAddr=192.168.95.130:9876;192.168.95.131:9876;192.168.95.132:9876;192.168.95.133:9876;
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=01
#文件保留时间,默认 48 小时
fileReservedTime=72
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/apps/usr/rocketmq/slave/store
#commitLog 存储路径
#storePathCommitLog=/apps/usr/rocketmq/slave/store/commitlog
#消费队列存储路径存储路径
#storePathConsumeQueue=/apps/usr/rocketmq/slave/store/consumequeue
#消息索引存储路径
#storePathIndex=/apps/usr/rocketmq/slave/store/index
#checkpoint 文件存储路径
#storeCheckpoint=/apps/usr/rocketmq/slave/store/checkpoint
#abort 文件存储路径
#abortFile=/apps/usr/rocketmq/slave/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
#checkTransactionMessageEnable=false
#发消息线程池数量
#sendMessageThreadPoolNums=128
#拉消息线程池数量
#pullMessaeThreadPoolNums=128
10.1:
关闭Broker:bin下面:sh
mqshutdown broker
关闭
Name Server
r:bin下面:sh
mqshutdown
namesrv
11.
然后启动 (在bin目录下)nameserver
nohup sh mqnamesrv >>/dev/null 2>&1 &(这个不打印启动日志)
nohup sh mqnamesrv &
(这个打印启动日志)
12.192.168.62.59
启动broker
nohup sh mqbroker -c
/usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release
/conf/
2
m
-2
s-
async
/broker-a.properties >/dev/
null
2
>&
1
&
12.
192.168.62.60
启动broker
nohup sh mqbroker -c
/usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release
/conf/
2
m
-2
s-
async
/broker-b.properties >/dev/
null
2
>&
1
&
12.
192.168.62.63
启动broker
nohup sh mqbroker -c
/usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release
/conf/
2
m
-2
s-
async
/broker-a-s.properties
>/dev/
null
2
>&
1
&
12.
192.168.62.64
启动broker
nohup sh mqbroker -c
/usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release
/conf/
2
m
-2
s-
async
/
broker-b-s.properties
>/dev/
null
2
>&
1
&
12.
jps看到
BrokerStartup和
NamesrvStartup说明启动mq成功
(也可以去
/apps/usr/rocketmq/logs/rocketmqlogs目录下查看启动信息日志和你如果发生错误时候的日志
)
13.下
载
rocketmq-console百度网盘地址
链接:https://pan.baidu.com/s/1Vq-jiS8mU-no5fqYEtkVyw
提取码:8wzp
拿出一个服务器放rocketmq-console
mkdir
/apps/mq-console
将你在网盘的下载后直接放入
/apps/mq-console文件下
进入 /apps/mq-console文件下nohup java -jar
rocketmq-console-ng-1.0.1.jar
&
此时启动成功后打卡浏览器输入
http://192.168.95.130:8080/
如果上面截图中地址不是你的mq地址,你直接可以复制你的地址,直接复制到你的红色框内,点击更新资料,就换成你自己的mq集群地址了
下面图片就是说明你部署rocketmq集群成功
到这里结束了....................