RocketMQ 集群扩容全解析(图文全面总结)

RocketMQ是大型架构的核心,下面我重点详解RocketMQ集群扩容@mikechen

RocketMQ 集群扩容

RocketMQ 集群的扩容主要分为两部分:Broker 扩容 和 NameServer 扩容。

RocketMQ 集群扩容全解析(图文全面总结)-mikechen

Broker 扩容,添加新 Master(或带 Slave 的组),这是最常见的水平扩容,用于提升写/读能力。

NameServer 负责存储 Broker 的路由信息,并为客户端提供服务发现功能。

NameServer 本身是无状态的,扩容非常简单,可以随时增加或减少。

 

NameServer 扩容

什么时候需要扩 NameServer?

路由请求 QPS 高;

Broker / Producer / Consumer 数量多;

RocketMQ 集群扩容全解析(图文全面总结)-mikechen

扩容流程:

直接新增 NameServer 实例。

修改客户端配置,指向更多 NameServer。

# 所属集群名称(必须与现有集群一致)
brokerClusterName=your-cluster-name

# 新 Broker 的名称(建议唯一,如 broker-c;如果加入现有组,可复用如 broker-a,但 brokerId 不同)
brokerName=broker-c  # 对于新 Master 组,使用新名称;如果扩展现有组,可复用

# Master 为 0(如果是 Slave,>0 如 1)
brokerId=0

# NameServer 地址(所有现有 NameServer,用;分隔)
namesrvAddr=ns1:9876;ns2:9876

# 其他推荐参数
autoCreateTopicEnable=false  # 生产环境关闭自动创建 Topic
listenPort=10911  # 默认端口

 

Broker 扩容

基本流程是:新增机器 → 拷贝或编写新的 broker.conf。

RocketMQ 集群扩容全解析(图文全面总结)-mikechen

注意修改 :brokerName、brokerId、端口、存储路径等→ 启动新的 Broker。

nohup sh bin/mqbroker -c conf/broker.conf -n "NameServer地址:端口" &

 

mikechen睿哥

10年+一线大厂架构实战专家,就职于阿里、淘宝等一线大厂,操盘多个亿级大厂核心项目。

评论交流
    说说你的看法