Flink CDC消费kafka的时候使用latest,用savepoint启动后不生效,中间的数据都漏掉了,这个有办法解决吗?
Flink CDC消费kafka的时候使用latest,用savepoint启动后是不生效的。
Flink CDC的latest模式,会从kafka中获取最新的一条数据,然后一直从这个位置开始读取数据。如果使用savepoint启动,那么Flink会从savepoint中恢复状态,并从该状态开始读取数据。如果savepoint中保存的状态是之前的某个时刻,那么Flink CDC就会从该时刻开始读数据,而不会从最新的数据开始读取。
为了解决这个问题,可以使用Flink CDC的timestamp模式。timestamp模式会从kafka中获取最新的一条数据,然后从该数据的timestamp开始读取数据。这样,即使使用savepoint启动,Flink CDC也会从最新的数据开始读取。
另外,也可以使用Flink CDC的offset模式。offset模式会从kafka中获取最新的offset,然后从该offset开始读取数据。这样,即使使用savepoint启动,Flink CDC也会从最新的offset开始读取。
在Flink CDC中,timestamp模式和offset模式都可以实现从最新的数据开始读取数据。但是,timestamp模式需要手动设置timestamp,而offset模式不需要。因此,对于大多数用户来说,offset模式会更加方便。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。