Kafka 分布式流式系統

2022-08-11 12:12:09 字數 821 閱讀 1532

傳送端:

傳送端不能非同步傳送,非同步傳送在傳送失敗的情況下,就沒辦法保證訊息順序。

(2)即使只有乙個佇列的情況下,會有第2個問題。該機器掛了之後,能否切換到其他機器?也就是高可用問題。

比如你當前的機器掛了,上面還有訊息沒有消費完。此時切換到其他機器,可用性保證了。但訊息順序就亂掉了。

要想保證,一方面要同步複製,不能非同步複製;另一方面得保證,切機器之前,掛掉的機器上面,所有訊息必須消費完了,不能有殘留。很明顯,這個很難。

接收端:

對於接收端,不能並行消費,也即不能開多執行緒或者多個客戶端消費同乙個佇列。

kafka訊息保證生產的資訊不丟失和重複消費問題

1)使用同步模式的時候,有3種狀態保證訊息被安全生產,在配置為1(只保證寫入leader成功)的話,如果剛好leader partition掛了,資料就會丟失。

2)還有一種情況可能會丟失訊息,就是使用非同步模式的時候,當緩衝區滿了,如果配置為0(還沒有收到確認的情況下,緩衝池一滿,就清空緩衝池裡的訊息),資料就會被立即丟棄掉。

在資料生產時避免資料丟失的方法:

只要能避免上述兩種情況,那麼就可以保證訊息不會被丟失。

1)就是說在同步模式的時候,確認機制設定為-1,也就是讓訊息寫入leader和所有的副本。

2)還有,在非同步模式下,如果訊息發出去了,但還沒有收到確認的時候,緩衝池滿了,在配置檔案中設定成不限制阻塞超時的時間,也就說讓生產端一直阻塞,這樣也能保證資料不會丟失。在資料消費時,避免資料丟失的方法:如果使用了storm,要開啟storm的ackfail機制;如果沒有使用storm,確認資料被完成處理之後,再更新offset值。低階api中需要手動控制offset值。

Kafka分布式訊息系統

什麼是apache kafka?系統應用 使用者的活動資料 請求 資料 互動資料 執行維護資料如效能 監測 伺服器cpu 指標這些大量的資料都在無時無刻的產生,kafka 便是有著一套成熟的訊息處理方案的訊息系統,支援 高吞吐量的 分布式發布訂閱訊息 模式,它可以處理消費者規模的 中的所有動作流資料...

分布式訊息系統Kafka初步

在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 l 我想分析一下使用者行為 pageviews 以便我能設計出更好的廣告位 l 有些資料,我覺得存資料庫浪費,直接存硬碟又怕到時候操作效率低。這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確...

分布式訊息系統Kafka初步

在我們大量使用分布式資料庫 分布式計算集群的時候,是否會遇到這樣的一些問題 l 我想分析一下使用者行為 pageviews 以便我能設計出更好的廣告位 l 有些資料,我覺得存資料庫浪費,直接存硬碟又怕到時候操作效率低。這個時候,我們就可以用到分布式訊息系統了。雖然上面的描述更偏向於乙個日誌系統,但確...