RocketMQ双主双从异步复制集群搭建(保证好使)

一.首先需要四个服务器
 
二.下载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配置信息
    RocketMQ双主双从异步复制集群搭建(保证好使)_第1张图片
 
    runserver.sh配置信息
   RocketMQ双主双从异步复制集群搭建(保证好使)_第2张图片
 
 
 
7. 这里注意一下,不同服务器数量搭建不同架构模式的rocketmq集群是不同的 下面搭建的模式是2s-2s-async(两主两从异步同步模式),进入配置文件夹cd /usr/local/rocketmq-4.7.1/rocketmq-all-4.7.1-bin-release/conf
 
RocketMQ双主双从异步复制集群搭建(保证好使)_第3张图片
 
如果要建立三主三从异步复制的话多建立一个文件夹其他情况相同
RocketMQ双主双从异步复制集群搭建(保证好使)_第4张图片
 
8.进入2m-2s-async目录
RocketMQ双主双从异步复制集群搭建(保证好使)_第5张图片
 
 
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目录下查看启动信息日志和你如果发生错误时候的日志
RocketMQ双主双从异步复制集群搭建(保证好使)_第6张图片
 
13.下   rocketmq-console百度网盘地址
链接:https://pan.baidu.com/s/1Vq-jiS8mU-no5fqYEtkVyw
提取码:8wzp
 
拿出一个服务器放rocketmq-console
 
mkdir  /apps/mq-console
 
将你在网盘的下载后直接放入 /apps/mq-console文件下
 
RocketMQ双主双从异步复制集群搭建(保证好使)_第7张图片
 
 
进入 /apps/mq-console文件下nohup java -jar  rocketmq-console-ng-1.0.1.jar &
 
此时启动成功后打卡浏览器输入 http://192.168.95.130:8080/
RocketMQ双主双从异步复制集群搭建(保证好使)_第8张图片
 
如果上面截图中地址不是你的mq地址,你直接可以复制你的地址,直接复制到你的红色框内,点击更新资料,就换成你自己的mq集群地址了
 
下面图片就是说明你部署rocketmq集群成功
 
RocketMQ双主双从异步复制集群搭建(保证好使)_第9张图片
 
到这里结束了....................

你可能感兴趣的:(实战问题解决,系统安装,运维,java,linux,大数据)