RocketMQ 2m-2s-async 集群搭建
0. 配置环境变量
echo -e '\nexport ROCKETMQ_HOME=/data/rocketmq\nexport PATH=$ROCKETMQ_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
echo -e '\n192.168.1.1 MQ1\n192.168.1.2 MQ2' >> /etc/hosts
1. JVM 参数调整(根据服务器配置自行调整)
bin/runserver.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
bin/runbroker.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
2. 修改日志目录
将 conf 目录下的 logback 文件中的 ${user.home} 改为当前目录「.」
3. 启动 NameServer 集群
# MQ1 和 MQ2 都执行以下命令
mkdir /data/nameserver && cd /data/nameserver && nohup sh $ROCKETMQ_HOME/bin/mqnamesrv &
4. 修改「多Master多Slave模式-异步复制」配置文件
# 2m-2s-async,单个 broker 会占用 listenPort, listenPort - 1, listenPort + 1 三个端口号,单台机器部署多个节点配置端口需要注意避开冲突
# broker-a.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
namesrvAddr=MQ1:9876;MQ2:9876
storePathRootDir=./store/a-master/
storePathCommitLog=./store/a-master/commitlog/
# broker-a-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=72
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10921
namesrvAddr=MQ1:9876;MQ2:9876
storePathRootDir=./store/a-slave/
storePathCommitLog=./store/a-slave/commitlog/
# broker-b.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
namesrvAddr=MQ1:9876;MQ2:9876
storePathRootDir=./store/b-master/
storePathCommitLog=./store/b-master/commitlog/
# broker-b-s.properties
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=72
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=10921
namesrvAddr=MQ1:9876;MQ2:9876
storePathRootDir=./store/b-slave/
storePathCommitLog=./store/b-slave/commitlog/
5. 启动 2m-2s-async 集群,复用服务器,需创建多个目录,以防日志等相关文件冲突
# MQ1
mkdir /data/broker-a && cd /data/broker-a && nohup $ROCKETMQ_HOME/bin/mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a.properties &
mkdir /data/broker-b-s && cd /data/broker-b-s && nohup $ROCKETMQ_HOME/bin/mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b-s.properties &
# MQ2
mkdir /data/broker-b && cd /data/broker-b && nohup $ROCKETMQ_HOME/bin/mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-b.properties &
mkdir /data/broker-a-s && cd /data/broker-a-s && nohup $ROCKETMQ_HOME/bin/mqbroker -c $ROCKETMQ_HOME/conf/2m-2s-async/broker-a-s.properties &
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix