找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1426

积分

0

好友

208

主题
发表于 5 天前 | 查看: 16| 回复: 0

RocketMQ 集群的扩容操作主要涉及两个核心组件:Broker 扩容 与 NameServer 扩容。

图片

  • Broker 扩容:指添加新的 Broker Master(或包含 Slave 的主从组),这是最常见的水平扩容方式,旨在提升整个集群的消息写入与读取吞吐能力。
  • NameServer 扩容:NameServer 作为轻量级的路由注册与发现中心,本身无状态,扩容相对简单,主要用于应对高并发路由请求或服务端节点数量增长带来的压力。

NameServer 扩容

何时需要扩容 NameServer?

  • 客户端(Producer/Consumer)发起路由请求的 QPS 过高。
  • 集群中 Broker、Producer 或 Consumer 的实例数量庞大,对服务发现层造成压力。

图片

扩容流程:

  1. 直接部署并启动新的 NameServer 实例。
  2. 修改所有客户端(Producer、Consumer)以及现有 Broker 的配置,将新的 NameServer 地址加入到 namesrvAddr 列表中。

Broker 扩容

Broker 扩容是提升集群处理能力的关键。基本流程为:准备新服务器 -> 配置新的 broker.conf 文件 -> 启动新的 Broker 进程。

图片

关键配置步骤:

  1. 在新增的机器上,准备 RocketMQ 运行环境。
  2. 创建或从现有配置拷贝并修改 conf/broker.conf,需特别注意以下参数:

    # 所属集群名称(必须与现有集群一致)
    brokerClusterName=your-cluster-name
    
    # Broker 名称(建议唯一,如 broker-c;若为现有组增加 Slave,则复用主节点名称,但 brokerId 不同)
    brokerName=broker-c
    
    # 节点角色,Master 为 0,Slave 为大于 0 的整数(如 1)
    brokerId=0
    
    # NameServer 地址列表(需包含所有在线的 NameServer,用分号分隔)
    namesrvAddr=ns1:9876;ns2:9876;ns3:9876
    
    # 生产环境建议关闭,避免自动创建 Topic 导致混乱
    autoCreateTopicEnable=false
    
    # Broker 监听端口,确保不与现有服务冲突
    listenPort=10911
    
    # 数据存储路径,指向新磁盘或目录
    storePathRootDir=/data/rocketmq/store
  3. 使用修改后的配置文件启动新的 Broker。
    nohup sh bin/mqbroker -c conf/broker.conf &

运维要点:
Broker 成功启动并向 NameServer 注册后,客户端会自动感知到新的节点。整个扩容过程是构建和维护高可用消息中间件集群的常规操作。为了确保线上系统的稳定,建议在非高峰时段进行,并提前做好配置检查和备份恢复演练。对于大规模集群,可以考虑结合自动化运维工具来提升效率。




上一篇:JavaScript时间转换全解析:处理Epoch、Unix与POSIX时间戳
下一篇:Linux实时性优化实战:PREEMPT-RT补丁在ARM平台的配置与cyclictest测试
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 21:10 , Processed in 0.453543 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表