03-Debezium的载体Kafka Connect
什么是Kafka Connect 正如前面的文章所说,Debezium提供的各种Connector都是Kafka Connect的插件,运行于Kafka Connect的服务上。 首先我们要知道,Kafka的特性,例如,topic的分区、I/O结合操作系统的页缓存(page cache)等,这些令Kafka具备了高吞吐量、低延时及高可用等优点。 由于Kafka的优点,当需要实现 CDC(Changed Data Capture) 时,即捕获 数据源 的变动并同步至 目标数据源 ,我们可以使用Kafka作为 数据源 和 目标数据源 之间的数据通道。 而作为开发人员只想专注于开发与数据源交互的代码,至于怎样开发Producer程序把捕获的数据发布到Kafka、怎样保证捕获数据的服务高可用,他们不希望多花精力考虑。这时,可以使用Kafka Connect把上下游的数据源与Kafka串联起来,而与数据源交互的业务代码则以Connector的形式运行在Kafka Connect上。 如上图所示,从 捕获数据源变动情况 的Connector被称为 Source Connector ,它们负责与数据源交互,把捕获到的记录放到一个集合里面(不一定是queue),然后,Kafka Connect会调用 Connector 对应的 Task 的 poll 方法从集合中获取记录,并发送至Kafka。