Skip to content

集群运维与可靠性

副本模式

RocketMQ 4.x 常见 Master/Slave 部署分为同步复制和异步复制。异步复制吞吐和延迟更有利,但 Master 故障时可能丢失尚未复制的数据;同步复制需要等待 Slave 到达确认边界,可提高可靠性但增加延迟和可用性约束。

现代高可用方案可结合 DLedger 或 Controller 模式实现自动选主。具体支持矩阵和迁移路径随版本变化,不能在旧静态 Master/Slave 配置上直接开启自动切换。

刷盘策略

策略语义
Async Flush写入 Page Cache 后返回,后台刷盘,性能较高
Sync Flush等待刷盘到达配置边界后返回,延迟较高

刷盘与副本是两个维度:同步刷盘不能替代跨节点副本,同步复制也不能替代磁盘和备份策略。

Topic 与队列规划

MessageQueue 数影响生产并行、消费并发、Rebalance 和元数据规模。增加队列数可能改变路由和顺序边界;不应按峰值盲目创建大量 Topic/Queue。

Topic 应按业务语义、保留策略、安全边界和流量隔离设计。Tag 更适合一个业务域内的轻量分类。

消息积压

积压排查顺序:

  1. 确认生产速率和消费速率;
  2. 检查 Consumer 在线状态、Rebalance 和线程池;
  3. 检查热点 MessageQueue 与顺序组阻塞;
  4. 检查业务处理、数据库和外部接口;
  5. 再评估扩 Consumer、增加队列或限流生产者。

Consumer 数超过 MessageQueue 数不会继续提升集群消费并行度。

关键监控

  • Broker TPS、请求延迟、发送/消费失败;
  • Topic/Consumer Group 的 Max Offset、Consumer Offset 和 Lag;
  • CommitLog、ConsumeQueue、磁盘使用和 Page Cache;
  • Master/Slave 复制延迟或 Controller 副本状态;
  • 消费重试、死信、顺序消息阻塞和事务回查;
  • NameServer、Proxy、Broker 可用性和客户端连接。

常见问题

现象优先检查
发送超时路由、Broker 负载、刷盘、复制和网络
消息重复Producer 重试、Consumer 重投、幂等键
消息查询不到Topic/Key、索引构建、保留时间和 Broker
单队列积压顺序 Key 热点、失败消息、Consumer 分配
Broker 磁盘增长保留策略、消费无关的历史、重试和死信

安全与变更

生产环境应配置 TLS、ACL 2.0 或目标版本支持的认证授权体系,隔离管理端口与业务端口。变更 Topic、权限、副本或 Broker 前记录路由和消费进度,并保留回退方案。

参考资料