就是flink cdc程序在挂了之后,需要重启,但中间过程中有数据库增删改,如何确保重启后这部分的数据不会丢失呢?
为了确保中间增删改不会丢失,可以使用以下两种方法:
1、启用事务日志。
在以下情况下,启用CDC事务日志可以为我们提供更好的数据一致性保障: 1. 程序即使重启,CDC日志也能继续读取还未处理的记录。 2. 若CDC Node 挂机,最近的数据处理以及消息同步状态都可以在重启时自动恢复。 3. 针对 Oracle、MySQL、PostgreSQL 这样的数据库,CDC Node 需要单独开启一个 Transaction,这样 CDC Node 处理记录可以原子性的写入目标数据源(如 HBase)和Sink(如 HDFS)。
2、设置状态检查点。
在CDC程序中对中间状态进行保存和恢复,可以使用 Flink 提供的 State Checkpoints 机制。在 Flink 中,Checkpoint 会将整个程序的中间状态,包括状态和数据,异步地定期存储到持久化存储器中。如果程序失败,则使用最新的Checkpoint将状态还原到程序失败前的状态。
当然,这两个方法都需要你的程序来支持。具体操作可以参考 Flink 文档进行实现。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。