From 9e0152ca0d4b168929b61f40f1f2a08024524bc5 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 15 Feb 2026 07:04:17 -0800 Subject: [PATCH] =?UTF-8?q?fix:=20RegexRouter=20=E7=B2=BE=E7=A1=AE?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=20outbox=20=E8=A1=A8=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=20heartbeat=20=E4=BA=8B=E4=BB=B6=E6=B1=A1=E6=9F=93?= =?UTF-8?q?=E6=B6=88=E8=B4=B9=E8=80=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题根因 (rwadurian 生产环境发现): - transforms.route.regex=".*" 将所有 CDC 变更事件(包括 heartbeat 表) 统一路由到 outbox topic,导致消费者收到非 outbox 格式的消息 - 消费者无法解析 heartbeat 消息 → prisma:error + "Unknown event format" 告警 - 每 10 秒一次 heartbeat × 5 个 connector = 持续的日志噪音 修复方案: - transforms.route.regex 从 ".*" 改为 ".*outbox" - 只有匹配 *outbox 的 topic(即真正的 outbox 表变更)才被路由到目标 topic - heartbeat/signal 表的变更走默认 topic 命名(无消费者监听,自动过期) - heartbeat 仍在 table.include.list 中,确保 Kafka offset 正常推进 → confirmed_flush_lsn 持续前进 → WAL 不积压 验证 (rwadurian 生产环境): - 修复后 mining-admin-service "Unknown event format" 告警清零 - WAL lag 从 540MB 降至 30-97MB 正常波动 - 5 个 connector 全部 RUNNING,heartbeat 正常(5s 内更新) Co-Authored-By: Claude Opus 4.6 --- backend/scripts/debezium/outbox-connector.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/scripts/debezium/outbox-connector.json b/backend/scripts/debezium/outbox-connector.json index d1dd407..9821e4a 100644 --- a/backend/scripts/debezium/outbox-connector.json +++ b/backend/scripts/debezium/outbox-connector.json @@ -31,7 +31,7 @@ "transforms.unwrap.delete.handling.mode": "rewrite", "transforms.unwrap.add.fields": "op,table,source.ts_ms", "transforms.route.type": "org.apache.kafka.connect.transforms.RegexRouter", - "transforms.route.regex": ".*", + "transforms.route.regex": ".*outbox", "transforms.route.replacement": "cdc.genex.outbox", "heartbeat.interval.ms": "10000",