我们有一个与Kafka生产者目前使用至少一次语义flink设置。我们正在考虑切换到关于Kafka制作人的语义,因为这将给我们带来好处。但考虑到文档,这似乎会增加我们目前没有的非常可能的数据丢失风险。如果由于flink无法恢复或kafka brokers宕机而导致长时间停机,则kafka事务可能会过期,数据将丢失。
如果flink应用程序崩溃和完成重新启动之间的时间>大于kafka的事务超时,则会丢失数据(kafka将自动中止超过超时时间的事务)。
这似乎是一个全新的风险,至少在语义上不存在一次,而且无法减轻。无论设置了多大的事务超时,都有可能在实际情况下达到。在我看来,最好的方法是有非常短的检查点间隔,因为它会导致事务关闭,但仍然有非常大的事务超时(以小时为单位),以便尽量减少数据丢失的机会。我的理解正确吗?
暂无答案!
目前还没有任何答案,快来回答吧!