当前位置: 首页 > news >正文

RocketMQ 4.9.5 集群搭建

RocketMQ 4.9.5 集群搭建

RocketMQ 4.9.5 「2主2从 异步复制」集群搭建完整实践笔记

环境:Ubuntu、JDK8、RocketMQ 4.9.5、控制台端口 8088
集群架构:2 Master + 2 Slave(异步复制)
节点规划(单机模拟多节点,不同端口区分服务

一、集群端口&角色规划(单机伪集群)

角色 名称 IP NameServer端口 Broker监听端口 对外通信端口
Master1 broker-a 192.168.150.130 9876 10911 10912
Slave1 broker-a-s 192.168.150.130 9876 11011 11012
Master2 broker-b 192.168.150.130 9876 11111 11112
Slave2 broker-b-s 192.168.150.130 9876 11211 11212

统一 NameServer:单节点 192.168.150.130:9876(单机简化,生产可多NameServer)
复制模式:异步复制


二、前期准备

1. 进入RocketMQ根目录

cd ~/myrocketmq/rocketmq-all-4.9.5-bin-release

2. 停止原有所有服务(清理环境)

# 关闭原有 Broker、NameServer
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv
# 关闭控制台
pkill -f rocketmq-dashboard
# 释放占用端口
fuser -k 8088/tcp

3. 目录规划(区分多组Broker配置)

conf 目录下创建集群专属配置,直接使用官方示例目录(4.9.5自带):

# 进入配置目录
cd conf
# 查看2主2从异步复制默认配置文件
ls -l 2m-2s-async/

内置4个核心配置文件:

  • broker-a.properties :Master1
  • broker-a-s.properties :Slave1
  • broker-b.properties :Master2
  • broker-b-s.properties :Slave2

三、修改集群配置(核心:IP、角色、主从关系)

1. 统一修改所有配置文件的本机IP

依次编辑4个配置文件,把 brokerIP1 改为你的服务器IP 192.168.150.130

① 编辑 Master1 配置

vim 2m-2s-async/broker-a.properties

完整内容(直接替换):

# 集群名称,主从必须一致
brokerClusterName = DefaultCluster
# Broker名称,主从成对一致
brokerName = broker-a
# 0=Master,1=Slave
brokerId = 0
# 本机IP
brokerIP1=192.168.150.130
# NameServer地址
namesrvAddr=192.168.150.130:9876
# 监听端口
listenPort=10911
# 异步复制(默认就是异步,无需额外修改)
# 允许自动创建主题(测试必备)
autoCreateTopicEnable=true

② 编辑 Slave1 配置

vim 2m-2s-async/broker-a-s.properties

完整内容:

brokerClusterName = DefaultCluster
brokerName = broker-a
# 从节点固定为 1
brokerId = 1
brokerIP1=192.168.150.130
namesrvAddr=192.168.150.130:9876
listenPort=11011
autoCreateTopicEnable=true

③ 编辑 Master2 配置

vim 2m-2s-async/broker-b.properties

完整内容:

brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 0
brokerIP1=192.168.150.130
namesrvAddr=192.168.150.130:9876
listenPort=11111
autoCreateTopicEnable=true

④ 编辑 Slave2 配置

vim 2m-2s-async/broker-b-s.properties

完整内容:

brokerClusterName = DefaultCluster
brokerName = broker-b
brokerId = 1
brokerIP1=192.168.150.130
namesrvAddr=192.168.150.130:9876
listenPort=11211
autoCreateTopicEnable=true

关键规则:

  1. 同一组主从:brokerName 必须完全相同
  2. Master:brokerId=0 ,Slave:brokerId=1
  3. 所有节点 brokerClusterName 全局统一
  4. 每个Broker listenPort 不能重复

四、启动集群(启动顺序:NameServer → 所有Master → 所有Slave)

回到 RocketMQ 根目录

cd ..

1. 启动 NameServer(全局唯一)

nohup sh bin/mqnamesrv > ns.log 2>&1 &
sleep 2
# 校验9876端口
ss -lnp | grep 9876

2. 启动两台 Master 节点

# 启动 Master1 broker-a
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties > broker-a.log 2>&1 &
sleep 2# 启动 Master2 broker-b
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties > broker-b.log 2>&1 &
sleep 2

3. 启动两台 Slave 节点

# 启动 Slave1 broker-a-s
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties > broker-a-s.log 2>&1 &
sleep 2# 启动 Slave2 broker-b-s
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties > broker-b-s.log 2>&1 &
sleep 2

4. 查看全部 Broker 进程

jps | grep BrokerStartup

正常会出现 4 个 Broker 进程 + 1 个 Namesrv 进程。


五、启动可视化控制台(8088 端口,已预配置)

# 后台启动控制台
nohup java -jar rocketmq-dashboard-1.0.0.jar > dashboard.log 2>&1 &
sleep 2

访问控制台

http://192.168.150.130:8088

进入控制台 → 集群 页面,可看到:

  • 集群名称:DefaultCluster
  • 两组主从节点:broker-a(主/从)broker-b(主/从)
    代表 2主2从 异步集群搭建成功。

六、集群消息收发测试

1. 配置 NameServer 环境变量

export NAMESRV_ADDR=192.168.150.130:9876

2. 启动生产者(发送消息)

sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

3. 新开终端启动消费者(接收消息)

export NAMESRV_ADDR=192.168.150.130:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

收发正常 → 集群功能可用。


七、集群全套关闭命令

# 逐个关闭 Broker
sh bin/mqshutdown broker
# 关闭 NameServer
sh bin/mqshutdown namesrv
# 关闭控制台
pkill -f rocketmq-dashboard

八、后续日常重启集群(固定步骤)

每次开机/重启直接按顺序执行:

# 1. 启动 NameServer
nohup sh bin/mqnamesrv > ns.log 2>&1 &# 2. 启动两台 Master
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties > broker-a.log 2>&1 &
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b.properties > broker-b.log 2>&1 &# 3. 启动两台 Slave
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties > broker-a-s.log 2>&1 &
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-b-s.properties > broker-b-s.log 2>&1 &# 4. 启动控制台
nohup java -jar rocketmq-dashboard-1.0.0.jar > dashboard.log 2>&1 &

九、关键说明 & 踩坑总结

  1. 主从判断
    • brokerId=0 → 主节点;brokerId=1 → 从节点
    • 同组主从 brokerName 必须一致,否则无法同步数据
  2. 端口冲突
    单机伪集群必须保证每个 Broker 的 listenPort 唯一,不能重复
  3. 异步复制
    当前使用官方 2m-2s-async 目录,默认就是异步复制,Master 写完立即返回ACK,再异步同步给Slave
  4. IP 配置
    brokerIP1 必须填写真实内网IP,不能用 127.0.0.1,否则控制台无法识别集群节点
  5. 容灾特点
    2主2从异步模式:Master宕机后,Slave可接管服务;存在毫秒级数据同步延迟,极端情况会丢失少量消息。

十、常用排查命令

# 查看所有MQ进程
jps | grep -E "Namesrv|Broker|dashboard"# 查看各节点日志
tail -f ns.log
tail -f broker-a.log
tail -f broker-a-s.log
tail -f dashboard.log# 查看端口监听
ss -lnp | grep -E "9876|10911|11011|11111|11211"
http://www.gsyq.cn/news/1481923.html

相关文章:

  • ULN2803驱动大尺寸数码管:从OC输出原理到动态扫描实战
  • 西服定制店铺实测排行 品质工艺客观对比 - 奔跑123
  • Java Lambda方法引用的三类核心类型、转化逻辑与深度对比
  • Tianshou强化学习库架构革新:资源受限环境下的高性能部署技术深度解析
  • 杭州未来科技城广州菜餐厅实测排行:鲜度与风味对决 - 奔跑123
  • 5分钟搭建抖音直播弹幕监控系统:Go语言实现全解析
  • 3个核心问题,NcmpGui如何让你的网易云音乐重获自由?
  • 2026年企业与个人AI编程工具综合榜单
  • Protel DXP Gerber文件生成全攻略:从原理到实战避坑指南
  • OpenSpeedy终极指南:免费开源游戏加速工具完全解析
  • FFXIV BossMod终极指南:如何用智能辅助插件轻松通关高难副本
  • 5分钟快速上手:HS2-HF_Patch完整汉化去码优化终极指南
  • CSDN AI数字营销企业版报价不是“问出来”的——而是靠这6项技术尽调材料+1份ROI测算模型“换来的”,附20年甲方数字化采购老炮整理的《报价谈判攻防手册》
  • 权限管理的艺术:我们如何用FastAPI+Vue3重构RBAC的现代实现
  • 寄多个包裹怎么寄最划算?比价省钱攻略 - 快递物流资讯
  • 国内主流西装定制品牌排行:适配多元场景需求 - 奔跑123
  • 144.Ubuntu22.04专属刷机工具链|edl/mtkclient/libimobiledevice环境一键部署
  • 终极指南:3分钟掌握Balena Etcher,安全烧录系统镜像不再难
  • 本周 GitHub 热门项目推荐:open-notebook 和 Agent-Reach
  • CSDN AI数字营销轻量启动方案(小额体验实测白皮书)
  • Honey Select 2汉化补丁:3步实现完整中文游戏体验
  • 2026树洞陪聊平台深度横评|告别敷衍陪伴,5款真心能共情的情绪树洞实测 - 时时资讯
  • IO口复用技术:2个IO驱动6键,8个IO实现36键的极致矩阵方案
  • 【限时限额】CSDN AI营销账号绿色通道仅开放至Q3末:现在补齐这3类动态资料可跳过7工作日人工复核
  • 华为OD转正上岸后,为什么我们成了‘背指标’的第一人选?聊聊人才堤坝下的真实处境
  • 3分钟快速上手:AICoverGen完整AI音频转换与语音克隆指南
  • 微信小程序日历组件技术架构解析:从日期计算到插件化设计
  • Altium Designer 6脚本绘制圆形螺旋走线:参数化高效PCB设计
  • 2026年GEO服务商选型全景报告:GEO优化定义?谁是国内TOP5专业GEO/SEO优化公司? - GEO优化
  • 2026年6月GEO优化服务商排行榜:五家标杆企业深度推荐指南 - GEO优化