mysql 里有一张表需要同步给其他系统,我想使用 "mysql --> flink cdc --> kafka --> 其他系统订阅" 的方式实现,现在的问题是,如果有个系统订阅 kafka 后,只能消费到中途的 binlog,请问这种情况有什么办法 首次全量后续从某一个 kafka offset 开始跟上 flink cdc 的同步吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
为了解决您提出的问题,即在MySQL表数据通过Flink CDC同步至Kafka后,如何让新订阅的系统能够从某个特定的Kafka offset开始消费并保持与Flink CDC同步,可以遵循以下步骤操作:
解决方案:
./bin/flink savepoint <job_id> hdfs://<hdfs_path>/savepoint
./bin/flink run -s hdfs://<hdfs_path>/savepoint/<savepoint_id> <job_jar> ...
latest-offset
或earliest-offset
以外的模式,如group-offsets
或specific-offsets
。虽然直接指定到某个offset的功能不直接暴露,但结合savepoint的使用,可以间接控制起始消费点。综上所述,通过精心安排Flink作业的生命周期管理,特别是利用savepoint功能,您可以使新加入的系统从期望的Kafka消息偏移量开始消费数据,进而跟上Flink CDC的同步进度。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。