【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v6.1.0
【复现路径】
1、ticdc任务原有cdc实例 xxx.xxx1:8300,xxx.xxx2:8300, changefeeds任务有22个
2、新加了cdc实例 xxx.xxx1:8310,xxx.xxx2:8310 ,但是changefeeds的表没有分配到实例上,重启cdc后,会分发到新的cdc-8310 端口的2个实例
3、如何把changefeeds任务 分发到4个cdc实例上
【资源配置】
【附件:截图/日志/监控】
Meditator
(Wendywong020)
2
底层是按照table来路由,是新建任务后,就已经固定了嘛
为啥8300端口的cdc实例一个任务都分配呢
Meditator
(Wendywong020)
4
是固定的,除非capture(cdc-server)挂掉了,才会以table为单位均衡到剩余的cdc-server上
cdc process 实例多少对抽取有什么影响,例如cdc实例2个和8个实例同步cdc任务有什么区别
changefeed 要同步的表会以 table 数量为单位分配到不同的 capture 上进行同步。
对于你遇到的问题,麻烦你执行一下 ./cdc version 命令获取 cdc 的版本信息,然后粘贴上来帮助我们排查。
按理来说 cdc 应该会自动对表进行负载均衡,如果它没有自动负载均衡,
- 可以通过 openAPI 来主动让它进行调度,参考:https://docs.pingcap.com/zh/tidb/dev/ticdc-open-api#手动触发表的负载均衡
- 如果以上方法不管用,可以考虑暂停并重启 changefeed。
- 如果上述两个方法都没有用,最后考虑重启 cdc owner 节点刷新所有状态。
1 个赞
早就重启cdc任务,就是分配不均衡
也通过命令调整过cdc任务,重启后就又不均衡了
neilshen
(Neil Shen)
8
调度不均衡的问题在 v6.2.0 版本之后已有优化,能自动平衡各个 TiCDC 节点上的表个数。之前的版本需要使用 API 来手动触发平衡调度,方法见 asddongmen 的回答。
system
(system)
关闭
9
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。