Flink CDC的工作原理类似于Canal和其他类似的产品,它会连接到MySQL服务器作为复制 slave(模拟slave),监听binlog日志,从而捕获数据库的变化。
它可以伪装成一个slave节点去请求主节点的日志,在这个过程种,它可以通过请求master节点的二进制日志来获得数据更改。由于它是作为slave节点来请求日志的,所以它可以获得所有更新的数据。
同时,Flink CDC还支持 parallel capture mode(并行捕获模式),在这种模式下,可以由多个任务并发地从不同的binlog文件中读取并处理事件。每个任务都会跟踪其自己的gtid(全局事务标识符)范围,保证不会重复消费binlog事件。这种方法可以提高整体吞吐率,并且使得多台服务器之间的负载均衡更容易。