被选为owner的capture还会执行processor的行为吗?

被选为owner的capture还会执行processor的行为吗?
网上搜索是不行,但是我看文档里的架构图又是共存的

1 个赞

会同时执行 Processor 任务

1 个赞

应该是同时执行processor吧

答案是会的

  • Capture:TiCDC 集群中的一个节点进程,是 TiCDC 工作的载体,每个 Capture 都具备承担 Owner 职责和运行 Processor 的能力。
  • Owner:是从所有 Capture 中选举出来的管理节点(逻辑角色,而非独立进程),负责整个 TiCDC 集群的全局管理工作,比如:集群元数据的维护与同步(如 changefeed 的配置、状态)。Processor 的调度与负载均衡(决定哪个 Capture 运行哪个表的 Processor)。 故障转移(当某个 Capture 下线时,将其对应的 Processor 迁移到其他健康的 Capture 上)。
  • Processor:是 Capture 上为单个 changefeed 运行的数据同步工作单元,负责具体的任务:解析 TiKV 的 Raft log、过滤数据、处理数据格式、将数据同步到下游目标

默认情况下会执行,owner 节点兼具管理和数据处理双重角色

应该是考虑到故障时候可以转移吧

  • Owner 的工作性质: Owner 需要处理大量的 DDL 事件、维护 etcd 里的元信息、进行集群拓扑的调度。这是一项管理型 工作,非常消耗 CPU 和协程资源。
  • Processor 的工作性质: Processor 需要高吞吐地拉取和处理数据,这是一项计算/IO 密集型 工作。
  • 避免单点过载: 如果让 Owner 同时做 Processor,一旦数据同步流量很大,Owner 的 CPU 被打满,它就没有足够资源去处理 DDL 或感知节点故障,这会导致整个集群的管理功能瘫痪(例如无法创建新任务、无法感知节点宕机)。

Owner 节点也会启动 Processor 进程来处理 Owner 调度过来的同步任务,它主要负责处理 DML 事件。

每个 Capture 进程包含一个或多个 Processor 线程,用于从上游 TiDB 复制表数据

网上有些说法应该是不准确的

owner角色才会执行对接任务