8.5.4版本newarch配置不起作用,表路由功能用不了

根据你提供的信息,这个问题最可能的根因是:TiCDC 实际仍在以旧架构模式运行,导致配置中的 target-schematarget-table 字段无法被识别。

在 TiCDC 旧架构中,[[sink.dispatchers]] 仅支持 MQ 场景下的 topic/partition 分发配置,不支持 target-schematarget-table 这两个表路由字段。只有新架构(newarch)才扩展支持了表路由功能 。


诊断步骤

1. 确认 TiCDC 二进制版本是否为新架构版本

在 TiCDC 节点上执行:

bash

cd /tidb-deploy/cdc-8300/bin  # 根据实际部署路径调整
./cdc version

新架构版本的输出应包含 -release.1 后缀,例如:

plain

Release Version: v8.5.4-release.1

如果显示的是 v8.5.4(不带 -release.1),说明当前运行的还是旧架构二进制,即使配置了 newarch: true 也无法识别表路由字段

2. 确认 newarch 配置已下发到所有 TiCDC 节点

bash

tiup cluster show-config <cluster-name> | grep -A5 "cdc:"

确保每个 TiCDC 节点的 config 下都有:

yaml

config:
  newarch: true

3. 查看 TiCDC 启动日志确认 newarch 是否生效

bash

grep -i "newarch\|new arch" /tidb-deploy/cdc-8300/log/cdc.log

新架构启动时通常会有相关初始化日志。