关于TiCDC组件部署位置的问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】7.1.2
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
我们想做一个基于ticdc的同城备份,主库6个节点,备库3个节点。
看一些资料说ticdc为了避免对主库压力可以部署在备库上,有个问题是这么部署的话ticdc的组件是在主库上用tiup 添加的吧,只是跑在备库机器上

:thinking:应该是两个集群,主集群,备份集群,在备份集群中使用Tiup安装TiCDC进行数据同步。我觉得是这个意思。

  • 使用 TiCDC 在两个 TiDB 集群间同步数据时,如果上下游的延迟超过 100 ms:
    • 对于 v6.5.2 之前的版本,推荐将 TiCDC 部署在下游 TiDB 集群所在的区域 (IDC, region)
    • 经过优化后,对于 v6.5.2 及之后的版本,推荐将 TiCDC 部署在上游集群所在的区域 (IDC, region)。

https://docs.pingcap.com/zh/tidb/stable/ticdc-overview#最佳实践

1 个赞

感觉不能用备份集群的ticdc吧

为什么?有什么区别么?

从安装来讲ticdc是一个集群的组件,我觉得只能这个集群作为源吧

对的,不能使用备集群的,只能用主集群的。TiCDC是集群组件的一部分,它捕获的是集群的数据变更日志,想想看它要捕获谁的变更就行了,显然是捕主集群的数据变化,同步到下游去。

官网这里的说明说可以部署在从集群,我的理解是节点可以和下游备集群混部,物理上是用的下游的机器资源。但是管理上,是由上游主集群的tiup统一管理,实际的部署架构还是上游的一部分。

1 个赞

cdc安装在主集群同步到从集群

我猜他们意思是组件属于主机群,但是服务部署在从集群的服务器上。

:thinking:那和单独拿出来一台服务器作为TiCDC有什么区别?我觉得这里强调主从两个集群,应该是两个独立的集群。如果是同一个集群,一旦超过半数节点挂掉,从集群也无法使用。

不过还是得看题主的资料来源,能否挂个链接?

在备集群是可以的,版本要合适


从架构上看,
每个 Capture 进程包含一个或多个 Processor 线程
要综合考虑上下游的主备关系和主备硬件资源及生产压力

在使用 TiCDC 组件进行主集群和灾备场景的同步时,最佳实践通常会考虑网络延迟的因素,特别是在两个可用区(AZ)之间延迟较高的情况下。

在 TiDB 版本 6.5.2 之前,建议将 TiCDC 组件的物理位置放置在灾备机房,以降低 TiCDC 节点到灾备集群的延迟,从而加速 SQL 回放过程。

然而,从版本 6.5.2 开始,TiCDC 已经进行了相应的优化,能够批量向下游发送 SQL,有效解决了之前由于延迟高而导致 SQL 回放缓慢的问题。因此,现在的最佳实践是将 TiCDC 组件放置在生产机房,提高同步效率。

TiCDC组件永远属于主集群。

:thinking:这段描述 来看,确实是主集群的组件。只是物理位置不一样。

这样就成了目标集群部署在主集群的cdc节点上

我也猜测是这样的

您的同城备份方案是可以实现的。为了避免对主库产生过多压力,我们可以将 ticdc 部署在备库节点上。

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