kafka的acks和retries,保證資料的可靠性傳輸,針對生產者
acks
acks = 1 : leader把資料寫入磁碟後,不等follower完全確認,就做出響應;如果leader宕機,會造成資料丟失
acks = 0: 生產者不等待任何確認,直接響應
acks = all: leader會等待至少乙個follower完全確認,才做出響應;即使leader宕機,資料也不會丟失
retries: 重試次數
acks = all 和 retries同時使用,會導致某些資料重複
冪等性: 保證同乙個分割槽下,資料的完整性(不會丟失、不會重複)
冪等要和acks = all, retries > 0,一起使用
冪等,exactly one(正好乙個)
kafka中如何實現冪等
每乙個生產者,初始乙個product id , broker會記錄 pid 和 序列號(自增),當下乙個訊息的序號》 pid中的序列號,則通過; 否則就認為是重複的
kafka中的acks引數
首先這個acks引數,是在kafkaproducer,也就是生產者客戶端裡設定的也就是說,你往kafka寫資料的時候,就可以來設定這個acks引數。這個引數實際上有三種常見的值可以設定,分別是 0 1 和 all。第一種選擇是把acks引數設定為0 我的kafkaproducer在客戶端,只要把訊息...
ACKS(確認收到)的引數配置,冪等性
acks引數配置 0 producer不等待broker的ack 是topic的每個partition傳送 這一操作提供了最低的延遲,broker一接收到還沒有寫入到磁碟就已經返回 反正就是不等待ack 當broker故障時可能會丟失資料。1 producer等待broker的ack,partiti...
kafka和flume的對比
摘要 1 kafka和flume都是日誌系統。kafka是分布式訊息中介軟體,自帶儲存,提供push和pull訪問資料功能。flume分為agent 資料採集器 collector 資料簡單處理和寫入 storage 儲存器 三部分,每一部分都是可以定製的。比如agent採用 rpc thrift ...