首页/数据/数据工程与 ETL 速查/同步积压排查路径
CDC 与同步53 条

同步积压排查路径

同步延迟排查按链路分段:源端位点是否推进、工具消费位点是否推进、中间队列是否有积压、目标端写入是否变慢(锁等待、批量大小、主键冲突、大事务阻塞)。逐段对比“生产速率与消费速率”,比反复调参数更快找到瓶颈。

同步积压按链路分段排查

同步延迟排查要按链路分段:源端位点是否还在推进(源库是否还在写)、工具消费位点是否推进(连接器与任务是否正常)、中间队列是否积压(消费组 LAG)、目标端写入是否变慢(锁等待、批量大小、主键冲突、大事务阻塞)。逐段对比「生产速率与消费速率」,比凭感觉到处调参数有效得多。

基本信息

源端看当前位点与写入速率
采集侧看连接器与任务状态、消费位点是否推进
中间队列看消费组 LAG 与分区分布
目标端看锁等待、批量大小、主键冲突与大事务

典型使用场景

  • 积压初判:先确认是全链路慢还是单段慢
  • 热点分区:某分区 LAG 远高于其他分区时,主键设计或大 key 是嫌疑
  • 大事务:源端一次批量更新产生大量 binlog,消费侧短时打满
  • 目标端瓶颈:写入并发过高导致锁等待,反而更慢
  • 重平衡抖动:区分正常波动与真实故障,避免告警噪音

分段取证

分段取证
# 中间队列:看消费组积压(LAG 列)
kafka-consumer-groups.sh --bootstrap-server kafka1:9092 --describe --group cdc-app

# 源端:看当前位点(MySQL 8.4+ 为 SHOW BINARY LOG STATUS)
mysql -uroot -p -e "SHOW MASTER STATUS;"

分段与观察指标

环节观察指标异常表现
源端位点推进速度位点不动说明源端没写入或链路已断
采集侧连接器与任务状态、消费位点任务失败或位点长期不推进
中间队列消费组 LAG 与分区分布LAG 持续增长或单个分区独高
目标端锁等待、写入耗时、冲突数写入变慢反压采集侧
先确认是「全链路慢」还是「单段慢」:分别在源、管道、目标取速率,避免凭感觉在单点加资源,把瓶颈从一个环节挪到另一个环节。
重平衡瞬间出现短暂 LAG 波动属于正常现象,把它当故障会制造大量噪音告警;判断标准是 LAG 能否在短时间内回落。

易错点

  • 只在目标端加大批量与并发,实际瓶颈是某个热点分区的串行处理
  • 把重平衡瞬间的 LAG 波动当故障,告警噪音掩盖了真实问题
  • 不同时记录源端与消费端的速率,无法判断是生产变快还是消费变慢
  • 遇到积压就重启工具,位点回退后重复消费,积压反而更严重

数据来源与参考

  • Kafka 官方文档(Consumer group lag)
  • Debezium 官方文档(Monitoring)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌