Flink 是流處理器,那麼同樣會涉及到一緻性的3個級别,他們分别如下
1、at-most-once
這其實是沒有正确性保障的委婉說法,故障發生後,計數可能丢失。
2、at-least-once
這表示計數結果可能大于正确值,但是絕不會小于正确值,即計數程式發生故障後可能多算,但是絕不會少計算。
3、exactly-once
這是指系統保證在故障發生後得到的計數結果與正确值一緻。
保證 exactly-once 不易
1、第一代流處理器隻能保證 at-least-once
Storm 和 Samza
2、第二代流處理器
Storm trident 和 Spark streaming,但是必須要在效率和低延遲之間做出權衡。
3、第三代流處理器
Flink,保證了exactly-once ,同時具有高吞吐和低延遲。
4、原因有如下2點
(1)保證 exactly-once 的實作比較複雜
(2)局限性