Flink容错机制-状态的一致性

2022-01-18  本文已影响0人  大空翼123

在流处理中,一致性可以分为3个级别:

1.at-most-once(最多变一次):

这其实是没有正确性保障的委婉说法——故障发生之后,计数结果可能丢失。

2.at-least-once(至少一次):

这表示计数结果可能大于正确值,但绝不会小于正确值。也就是说,计数程序在发生故障后可能多算,但是绝不会少算。

3.exactly-once(严格变一次):

这指的是系统保证在发生故障后得到的计数结果与正确值一致.既不多算也不少算。

Flink的一个重大价值在于,它保证了exactly-once具有低延迟和高吞吐的处理能力。

端到端的状态一致性

整个端到端的一致性级别取决于所有组件中一致性最弱的组件。

SparkStraming做法:手动维护偏移量(数据不丢)+幂等性框架(数据不重复)

Flink做法

        source端:需要外部源可重设数据的读取位置,如kafka

        flink内部:依赖checkpoint机制

        sink端:幂等(Idempotent)写入/事务性(Transactional)写入(两阶段提交)

一致性

        

上一篇下一篇

猜你喜欢

热点阅读