Skip to content
章节导航

RocketMQ 集群高可用之主从模式搭建

角色IP
Master192.168.100.7
Slave192.168.100.8

环境:RocketMQ + JDK21 + Maven + CentOS7

环境安装以及 RocketMQ 编译等步骤省略

修改 RocketMQ 配置(生产环境不用修改,具体看服务器配置)

启动内存配置,两个机器都要修改

个人 RocketMQ 存放位置

shell
### 编译之后的全路径,编译见第二章
cd /usr/local/rocketmq/rocketmq-all-5.3.3-source-release/distribution/target/rocketmq-5.3.3/rocketmq-5.3.3

修改 runserver

shell
### 打开文件夹
vim bin/runserver.sh

### 修改配置文件
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize-128m -XX:MaxMetaspaceSize-320m"

修改 runbroker

shell
### 打开文件夹
vim bin/runbroker.sh

### 修改配置文件
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"

启动 NameServer

启动两个机器的 NameServer

shell
# 启动 nameserver
nohup sh bin/mqnamesrv &

# 查看启动日志
tail -f nohup.out

# 查看是否启动成,启动成功会输出 NamesrvStartup
jps

主节点配置

重要参数

参数描述
namesrvAddr节点地址,多个节点之间使用 ; 分开(主从一致)
brokerClusterName集群名称(主从一致)
brokerNamebroker名称(主从一致)
brokerId集群名称(主从唯一, 0: 主节点; 大于0: 从节点)
deleteWhen集群名称 (主从一致)
fileReservedTime集群名称 (主从一致)
brokerRole角色(主从唯一: ASYNC_MASTER: 异步复制主节点; SLAVE: 从节点)
flushDiskType刷盘策略(主从一致: ASYNC_FLUSH: 异步刷盘)

主节点配置

shell
# 打开配置文件
vim conf/2m-2s-async/broker-a.properties

# 添加配置文件
namesrvAddr=192.168.100.7:9876;192.168.100.8:9876
brokerClusterName=FlyUniCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

启动主节点

shell
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &

从节点配置

shell
# 打开配置文件
vim conf/2m-2s-async/broker-a-s.properties


# 配置文件信息
namesrvAddr=192.168.100.7:9876;192.168.100.8:9876
brokerClusterName=FlyUniCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

启动从节点

shell
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &

管控台修改事项

  • 里面的 rocketmq 版本号 pom.xml
  • application.properties 里面的 nameserver , 增加 rocketmg.config namesrvAddr=192.168.100.7:9876:192.168.100.8:9876