1. 程式人生 > >理解分散式可靠性的三個級別

理解分散式可靠性的三個級別

分散式資料處理,就是利用分散式計算技術對資料進行處理。

分散式計算是指將一個龐大的計算任務經過伺服器的處理劃分為若干個小任務,然後將這些小任務通過網路分發到位於同一網路、不同物理位置的客戶端,通過這種結構計算出各個結果,最後在通過彙總得到這個龐大計算任務的結果。

分散式資料處理擁有三個級別的可靠性:資料最多傳送一次、最少傳送一次、恰好傳送一次

1、最多一次

一般分散式資料處理預設為此級別,在此級別下,伺服器只管傳送資料,不關心資料是否正確到達目的客戶端。

優點:資料傳輸速率最高

缺點:在網路不穩定的情況下,可能導致資料丟失(一般不會丟失的太嚴重),資料可靠性最低

2、 最少一次

在傳送資料給各個客戶端時,每傳送一部分資料就會等待對應的客戶端回覆的資訊,若響應超時,伺服器會重新發送未被確認的資料,直至伺服器正確接收到來自客戶端的回覆訊息。在成功收到回覆訊息後,傳送下一部分的資料。

優點:保證資料正確無誤的傳送到指定客戶端

缺點:在網路繁忙時,會造成客戶端接收到較多的重複資料

3、恰好一次

​ 在最少一次的基礎上,增加了去重機制,伺服器在同一資料傳送時新增一個類似於版本號的唯一標識,在客戶端接收到同一資料的多個版本後,只保留最新版本的資料。

優點:保證資料唯一且沒有冗餘的接收,資料可靠性最高

缺點:客戶端對於刪除標識的時間把握不明確,會導致儲存的大量唯一標識佔用空間,並且有一定時間耗費在比較上,資料傳輸速率最低

 

以上三種方案的使用,應該根據具體情況具體考慮。

另外,在各個分散式系統的處理上,有各種改進方案,比如Kafka產生資料的可靠性保證、Storm分散式處理資料的多個機制等等。