RocketMQ集群(二主二从异步集群部署)

RocketMq下载地址 4.7.1
转载:RocketMQ——管理命令
转载:RocketMQ默认配置

一、节点规划

第一台机器 192.168.124.30
端口规划:
9876 NameServer1
10910 BrokerA-master
10921 BrokerB-slave

第二台机器 192.168.124.31
端口规划:
9876 NameServer2
10920 BrokerB-master
10911 BrokerA-slave
在这里插入图片描述

二、解压 (文件路径 /soft/rocketmq)

解压后,把文件夹改个名字

unzip rocketmq-all-4.7.1-bin-release.zip
mv rocketmq-all-4.7.1-bin-release rocketmq

在这里插入图片描述
在两台机器上都下载、解压好。
在rocketmq/conf目录下,有三种建议配置模式:
2m-2s-async(2主2从异步) —— 本文采用这种
2m-2s-sync (2主2从同步)
2m-noslave (2主)

现在需要修改两台机器上2m-2s-async这个目录中的文件。
配置文件修改之前先备份。

三 配置第一台机器

192.168.124.30的两个配置文件
(1)broker-a.properties

cd  /soft/rocketmq/conf/2m-2s-async
vim  broker-a.properties

修改的内容(名字自定义,保持一致,否则不能组成集群)

brokerClusterName=rocketmq-cluster

增加的内容


#Broker 对外服务的监听端口
listenPort=10910
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#nameServer地址,分号分割
namesrvAddr=192.168.124.30:9876;namesrvAddr=192.168.124.31:9876
#存储路径
storePathRootDir=/soft/rocketmq/store/broker-a
#commitLog 存储路径
storePathCommitLog=/soft/rocketmq/store/broker-a/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/soft/rocketmq/store/broker-a/consumequeue
#消息索引存储路径
storePathIndex=/soft/rocketmq/store/broker-a/index
#checkpoint 文件存储路径
storeCheckpoint=/soft/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/soft/rocketmq/store/abort

(2)broker-b-s.properties

vim  broker-b-s.properties

修改的内容(名字自定义,保持一致,否则不能组成集群)

brokerClusterName=rocketmq-cluster

增加的内容:(注意文件路名是 broker-b-s)

#Broker 对外服务的监听端口
listenPort=10921
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#nameServer地址,分号分割
namesrvAddr=192.168.124.30:9876;namesrvAddr=192.168.124.31:9876
#存储路径
storePathRootDir=/soft/rocketmq/store/broker-b-s
#commitLog 存储路径
storePathCommitLog=/soft/rocketmq/store/broker-b-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/soft/rocketmq/store/broker-b-s/consumequeue
#消息索引存储路径
storePathIndex=/soft/rocketmq/store/broker-b-s/index
#checkpoint 文件存储路径
storeCheckpoint=/soft/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/soft/rocketmq/store/abort

四 :配置第二台机器

192.168.124.31 的两个配置文件
修改的内容基本一致,主要是注意一下端口号、路径名

(1)broker-b.properties

cd /soft/rocketmq/conf/2m-2s-async
vim  broker-b.properties

修改的内容(名字自定义,保持一致,否则不能组成集群)

brokerClusterName=rocketmq-cluster

增加的内容


#Broker 对外服务的监听端口
listenPort=10920
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#nameServer地址,分号分割
namesrvAddr=192.168.124.30:9876;namesrvAddr=192.168.124.31:9876
#存储路径
storePathRootDir=/soft/rocketmq/store/broker-b
#commitLog 存储路径
storePathCommitLog=/soft/rocketmq/store/broker-b/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/soft/rocketmq/store/broker-b/consumequeue
#消息索引存储路径
storePathIndex=/soft/rocketmq/store/broker-b/index
#checkpoint 文件存储路径
storeCheckpoint=/soft/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/soft/rocketmq/store/abort

(2)broker-a-s.properties

cd  /soft/rocketmq/conf/2m-2s-async
vim  broker-a-s.properties

修改的内容(名字自定义,保持一致,否则不能组成集群)

brokerClusterName=rocketmq-cluster

增加的内容: 主要是注意一下端口号、路径名

#Broker 对外服务的监听端口
listenPort=10911
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#nameServer地址,分号分割
namesrvAddr=192.168.124.30:9876;namesrvAddr=192.168.124.31:9876
#存储路径
storePathRootDir=/soft/rocketmq/store/broker-a-s
#commitLog 存储路径
storePathCommitLog=/soft/rocketmq/store/broker-a-s/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/soft/rocketmq/store/broker-a-s/consumequeue
#消息索引存储路径
storePathIndex=/soft/rocketmq/store/broker-a-s/index
#checkpoint 文件存储路径
storeCheckpoint=/soft/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/soft/rocketmq/store/abort

五、创建数据目录

第一台机器30执行(只需要执行一次)

mkdir -p /soft/rocketmq/store/broker-a /soft/rocketmq/store/broker-a/consumequeue /soft/rocketmq/store/broker-a/commitlog /soft/rocketmq/store/broker-a/index /soft/rocketmq/logs /soft/rocketmq/store/broker-b-s /soft/rocketmq/store/broker-b-s/consumequeue /soft/rocketmq/store/broker-b-s/commitlog /soft/rocketmq/store/broker-b-s/index

第二台机器31执行(只需要执行一次)

mkdir -p /soft/rocketmq/store/broker-a-s /soft/rocketmq/store/broker-a-s/consumequeue /soft/rocketmq/store/broker-a-s/commitlog /soft/rocketmq/store/broker-a-s/index /soft/rocketmq/logs /soft/rocketmq/store/broker-b /soft/rocketmq/store/broker-b/consumequeue /soft/rocketmq/store/broker-b/commitlog /soft/rocketmq/store/broker-b/index

六、启动两个NameServer

启动第一台机器30的NameServer

nohup sh /soft/rocketmq/bin/mqnamesrv >/soft/rocketmq/logs/mqnamesrv.log 2>&1 &

启动第二台机器31的NameServer

nohup sh /soft/rocketmq/bin/mqnamesrv >/soft/rocketmq/logs/mqnamesrv.log 2>&1 &

七、启动Broker

1、启动节点1 30的 broker-a-master
在30上面执行

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

在虚拟机中可能由于内存不够导致无法启动,日志文件中出现如下错误:

nohup: ignoring input
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
vim /soft/rocketmq/bin/runbroker.sh

把8g和4g改成512m和256m

JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"

再次启动。
2、启动节点2 31的broker-a-s
在31上面执行

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

3、启动节点2 31的 broker-b-master
在31上面执行

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

4、启动节点1 30的broker-b-s
在30上面执行

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

到此为止 集群已启动完毕
查看端口状态

查看端口启动状态:
netstat -an|grep 9876

第一台机器 192.168.124.30
端口规划:
9876 NameServer1
10910 BrokerA-master
10921 BrokerB-slave

第二台机器 192.168.124.31
端口规划:
9876 NameServer2
10920 BrokerB-master
10911 BrokerA-slave
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值