1、at-most-once
這其實是沒有正確性保障的委婉說法,故障發生後,計數可能丟失。
2、at-least-once
這表示計數結果可能大於正確值,但是絕不會小於正確值,即計數程式發生故障後可能多算,但是絕不會少計算。
3、exactly-once
這是指系統保證在故障發生後得到的計數結果與正確值一致。
1、第一代流處理器只能保證 at-least-once
storm 和 samza
2、第二代流處理器
storm trident 和 spark streaming,但是必須要在效率和低延遲之間做出權衡。
3、第三代流處理器
flink,保證了exactly-once ,同時具有高吞吐和低延遲。
4、原因有如下2點
(1)保證 exactly-once 的實現比較複雜
(2)侷限性
Flink 狀態一致性
當在分布式系統中引入狀態時,自然也引入了一致性問題。一致性實際上是 正確性級別 的另一種說法,也就是說在成功處理故障並恢復之後得到的結果,與沒有發生任何故障時得到的結果相比,前者到底有多正確?舉例來說,假設要對最近一小時登入的使用者計數。在系統經歷故障之後,計數結果是多少?如果有偏差,是有漏掉的計數...
flink 狀態一致性(十三)
狀態一致性1.有狀態的流處理,內部每個運算元任務都可以有自己的狀態 2.對於流處理內部來說,所謂的狀態一致性就是我們所說的計算結果要保證準確 3.一條資料不丟失,也不重複計算 4.在遇到故障時可以恢復狀態,恢復以後的重新計算,結果應該也是完成正確的狀態一致性分類 1.exactly once 恰好處...
強一致性 弱一致性 最終一致性
這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...