Flink CDC中Debezium也支持增量快照, flink cdc以前是用Debezium,后来为啥要自己实现呢?
性能:使用Debezium作为Flink CDC引擎可能会影响Flink的整体性能。由于Debezium需要在流式处理环境中捕获数据库更改,并将其转换为Flink可以处理的事件流,因此它可能会引入额外的延迟和开销。相比之下,Flink自己实现的CDC引擎可能会更高效,因为它可以直接处理数据库更改,而无需进行额外的转换。
灵活性:使用Debezium作为Flink CDC引擎可能限制了Flink的灵活性。由于Debezium只支持特定的数据库,因此Flink可能无法支持所有类型的数据库。相比之下,Flink自己实现的CDC引擎可以更容易地支持不同类型的数据库,并提供更多的灵活性。
flink 底层不就是debezium吗,debezium是单进程多线程模型。flink cdc是多进程模型,在大规模和分布式场景下有更大优势,主要原因是cdc是先实现的增量快照,另外现在的cdc在全量阶段的并发有优势,com.ververica.cdc.connectors.mysql.source.MySqlSource 这里的binlogreader和全量读都是自己实现的,flink cdc 和debezium的实现是有区别的。debezium的窗口是连续的,获取窗口存在竞争,最后好像也不必从低水位点回放补齐间隙,这种在多进程模型下不好实现。另外snapshot的位置是在binlog中打点完成的,可能很多用户接受不了。所以即使debezium有了增量读,flink cdc也不好直接复用。,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。