小白第一次搭建rocketmq2主2从模式

首先感谢写过搭建文档的大佬们,我完全是照着搬得,只是加了些自己的理解。

https://blog.csdn.net/u014211122/article/details/79712519?utm_source=blogxgwz6

https://blog.csdn.net/loongshawn/article/details/51086876

https://blog.csdn.net/weixin_40533111/article/details/84451219

上面就是我参考的文档。

第一步  首先2主2从搭建需要至少2台的虚拟机

第二步  将虚拟机的环境搭建好,特别是Java环境,jdk最好是1.8版本

第三步  去官网下载rocketmq

一定要下这种的,这种可以直接扔到服务器上 unzip就可以解压就可以用,另一个还需要编译,因为咋传这个资源都有重复的,所以就不传了。

第四步   修改rocketmq的配置文件

/home/rocketmq/conf/2m-2s-async 在这个目录下的

先改broker-a.properties的配置

#所属集群名字
brokerClusterName=xxxxxx(自己想个集群名字)
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示Master, > 0 表示slave
brokerId=0
#nameServer 地址,分号分割
namesrvAddr=namesrv1:9876;namesrv2:9876(这里跟namesrv启动的服务器以及要开的端口)
#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10911
#删除文件时间点,默认是凌晨4点
deleteWhen=00 (我这里改为0点)
#文件保留时间,默认48小时,单位是小时,这里保留的是3天
fileReservedTime=72
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/store
#commitLog存储路径
storePathCommitLog=/home/rocketmq/store/commitlog
#消费队列存储路径
storePathConsumeQueue=/home/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq/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
#发消息线程池数量
#sendMessageTreadPoolNums=128
#拉消息线程池数量
#pullMessageTreadPoolNums=128
 

注意路径你们自己在那解压的文件就在那个路径下,我这是直接解压到home目录下的,因为虚拟机没空间了,我标红色的是特别注意的都需要修改的

mkdir logs  创建存放日志文件(下面都是,只是注意创建文件的路径要和你配置里一样路径)

mkdir store
mkdir commitlog
mkdir consumequeue
mkdir index

 

再改broker-a-s.properties的配置

#所属集群名字
brokerClusterName=xxxxx(名字需保持一致)
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a-s
#0 表示Master, > 0 表示slave
brokerId=1
#nameServer 地址,分号分割
namesrvAddr=namesrv1:9876;1namesrv2:9876
#在发送消息时,自动创建服务器不存在的Topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许Broker自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口
listenPort=10921
#删除文件时间点,默认是凌晨4点
deleteWhen=00
#文件保留时间,默认48小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/astore/store
#commitLog存储路径
storePathCommitLog=/home/rocketmq/astore/commitlog
#消费队列存储路径
storePathConsumeQueue=/home/rocketmq/astore/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq/astore/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq/astore/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq/astore/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
#发消息线程池数量
#sendMessageTreadPoolNums=128
#拉消息线程池数量
#pullMessageTreadPoolNums=128

需注意的是主和从的配置除了brokerId、listenPort、brokerRole这几个是必须改的,但 存储路径 这个大家很容易弄混淆,若是主从都在一台服务器上,那主从的储存配置必须不同,否则一样无法启动。

其次因为我是模拟虚拟机,配置都不是很高,而mq默认的启动配置需要的内存都要求很高,所以若是直接默认启动,服务也会启动不了,因此需要修改

/home/rocketmq/bin
在这个目录下执行

vim runbroker.sh

修改这里配置降低启动配置。

以及

vim runserver.sh

都需要修改

修改成功后,便可以启动服务了。

同理2主2从,另一台也是如此配置。

先启动namesrv

mqnamesrv的启动命令 将日志打印至指定目录 方便启动失败后可以去看到底出现什么毛病
nohup sh /home/rocketmq/bin/mqnamesrv >/home/rocketmq/logs/mqnamesrv.log 2>&1 &

再执行jps -l命令看看服务是否启动

再启动主broker

将日志打印指定目录
nohup sh /home/rocketmq/bin/mqbroker -c /home/rocketmq/conf/2m-2s-async/broker-a.properties > /home/rocketmq/logs/broker-a.log 2>&1 &
 

最后启动从broker

将日志打印指定目录

nohup sh /home/rocketmq/bin/mqbroker -c /home/rocketmq/conf/2m-2s-async/broker-a-s.properties > /home/rocketmq/logs/broker-a-s.log 2>&1 &

 

然后在服务器上jps -l看看 是否成功启动了两个broker 其中一个是主一个是从。

如图所示便是成功。

当然若是你是配置2主2从,那必须先把两个服务器上的namesrv都启动了再去启动broker,不然会少一个namesrv的服务注册,也会导致启动失败,因此启动优先级是 namesrv>broker-a>broker-a-s  (主要比从先启,这个不用我说了吧)

然后可以去找个 rocketmq控制台来看看你的集群部署,这个控制台也是有下的。

下好了,可以直接打开代码

找到application.properties修改里面的配置,port指的是这控制台启动所占用的端口号,name改为你前面部署的rocketmq集群的名字,namesrvaddr改为你部署的两台服务器的namesrv的ip地址和端口,isVIPChannel是指是否开通vip通道,有的话就开通没有就false就行。

配置什么都改完了,然后就可以打开网页查看你的rocketmq集群了

这样就算是搭建成功啦,我一会去学怎么使用rocketmq。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值