关于 TiCDC 的一些问题,恳请大佬解答一下~

1、TiCDC 多个changefeed订阅了同一个表,每个任务都要去 tikv 的 region 中拉取数据吗?即:任务1 拉取表A,任务2 也拉取表A。两个任务都要去 tikv 中拉取数据吗?
2、基于问题1 ,如果每个任务都要去 tikv 的 region 中拉取数据,那么 gRPC连接会增加,那么此时对tikv cluster 的影响大吗?

由于本人是 go 语言小白,还没有能力查看源码,所以恳请大佬解答~

1、TiCDC 多个changefeed订阅了同一个表,每个任务都要去 tikv 的 region 中拉取数据吗?即:任务1 拉取表A,任务2 也拉取表A。两个任务都要去 tikv 中拉取数据吗?

是的,表 A 的数据会被拉两遍。

2、基于问题1 ,如果每个任务都要去 tikv 的 region 中拉取数据,那么 gRPC连接会增加,那么此时对tikv cluster 的影响大吗?

TiCDC 上的不同 changefeed 会复用 gRPC 连接。现在的实现中,单个 TiCDC 和 TiKV 之间只会有一条 gRPC 链接。TiCDC 对 TiKV 的影响主要看业务负载,如果是读多写少,那影响较小;如果写多读少且 TiKV 本身 gRPC 模块 CPU 负载已经很高,那可能会有些影响。

这里的写多读少是业务的的写吗?如果是业务的写,tikv 不仅要进行数据的存储,也要将数据发往 ticdc,确实有点消耗 CPU。对了,是 ticdc 主动拉 tikv 的 changelog,还是 tikv 主动发给 ticdc 的呀?我记得有个 tikv cdc component,这个组件有相关文档嘛?

对了,是 ticdc 主动拉 tikv 的 changelog,还是 tikv 主动发给 ticdc 的呀?我记得有个 tikv cdc component,这个组件有相关文档嘛?

TiCDC 主动发起向 TiKV 发起链接,链接建立后 TiKV 主动发给 TiCDC,消息的发送有流控,只有 TiCDC 能处理了,TiKV 才能发送成功。目前还没有 TiKV 中 CDC component 的公开原理性质文档。

好的,感谢大佬

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。