📌 场景:ADMQ(Pulsar)集群的默认配置瓶颈
某客户核心系统采用 ADMQ(Pulsar)集群承载消息流转,初期按默认模板部署,Broker 节点 JVM 配置为 2g / 2g / 4g(堆内存 2g、元空间 2g、堆外内存 4g)。前期业务流量小,运行平稳。随着业务系统陆续接入,Topic 数量、消息写入量和消费者并发数持续上涨,集群开始偶发写入延迟,部分 Topic 的 backlog 逐渐堆积。
运维团队排查发现:磁盘使用率仅 45%,网络带宽充足;但 Broker JVM 堆内存长期高位运行,元空间接近上限。默认配置未针对业务流量做调整,成为隐形瓶颈。最终只能临时调大 JVM 参数、重启 Broker 止血,期间业务已出现短暂延迟。
🧩痛点一:多中间件指标口径不一
Pulsar 看 backlog、Kafka 看 ISR/LAG、RocketMQ 看 consumeLag、RabbitMQ 看 queue depth。指标散落各处,人工统一评估耗时费力,容易遗漏关键风险。
🚫痛点二:只进不出,集群被"撑爆"
业务增长未对存储和流量设限,消息 retention 默认保留、Topic 无限增长,磁盘、内存、连接数逐步逼近上限,最终在某个夜晚触发连环告警。
🔧痛点三:默认参数"一刀切"
JVM 2g / 2g / 4g、默认分区数、默认刷盘策略等出厂配置,适合小流量验证,却扛不住生产环境增长。配置调优需要深厚经验,试错成本高。
🔥痛点四:告警即事故,扩容总在半夜
容量饱和往往在业务受损后才被发现,运维团队被迫临时救火。扩容决策靠经验,容易出现"扩少了继续爆"或"扩多了浪费"的两难。