假设你的checkpoint设置为每10分钟一次那假设5分钟的时候算子出了异常并且数据己写入下流sink端请问flink会二次消费导致下游重复吗?
根据描述的情况,假设在5分钟时算子出现异常并且数据已经写入了下游的sink端。在Flink的checkpoint机制下,Flink会将异常发生时的状态回滚到最近一次成功的checkpoint的状态,然后重新启动作业。这意味着在重新启动后,Flink会从最近一次成功的checkpoint开始进行数据处理。
在这种情况下,已经写入下游sink端的数据在重新启动后会被再次处理并写入sink端。因此,下游可能会接收到重复的数据。
为了避免这种情况,可以在Flink作业中使用一些幂等性的机制,例如在sink端对数据进行去重处理,或者在上游进行数据去重,以确保下游不会收到重复的数据。这样可以保证即使出现异常,重启后的数据处理过程仍然是正确的。
原文地址: https://www.cveoy.top/t/topic/i02m 著作权归作者所有。请勿转载和采集!