Topic 队列数一致性检查
巡检规则
本文中提及的 RocketMQ Copilot 术语是 AutoMQ Copilot for RocketMQ 的简称,均特指安托盟丘(杭州)科技有限公司面向 Apache RocketMQ 设计实现的消息队列智能辅助运维系统。
检测数据源
Topic 队列一致性检查的检测数据源是目标集群 Topic配置信息,通过读取目标集群当前生效的 Topic 配置,判断每个 Topic 在每个 Broker 上的分配队列数量是否一致。
检测周期
- 每 10 分钟一次。
- 不可关闭。
异常检测逻辑
检查 Topic 队列分布在每个 Broker数量,如果不一致则产生异常事件。
事件和风险
RocketMQ Copilot 系统巡检会对检测不通过的规则产生异常事件和风险,异常事件遵循 概述▸ 。
异常事件
- 异常事件类型:copilot:cluster:TopicQueueNumConsistencyInspectionFailed
- 关于事件的详细 schema 定义,异常事件:主题各个 Broker队列数不一致▸ 。
异常风险
- 关联的风险类型:主题各个 Broker 队列数不一致
风险分析
RocketMQ 中,按照运维最佳实践,Topic 应该以 Cluster 粒度被创建和管理对外提供服务,因此集群内的各个节点上的队列数不应该存在差异。
主题的收发消息负载均衡本质是按队列粒度处理,队列是 RocketMQ 中负载均衡的基本单位,如果同一 Topic 在 Cluster 内的 Broker 上队列数不一致,会导致 Broker 之间负载不均。
运维建议
建议 1:生产环境按照集群粒度创建和管理 Topic
生产环境建议按照集群粒度创建和管理 Topic,避免按照单个 Broker 节点来管理 Topic。