2021年大数据Kafka(八):Kafka如何保证数据不丢失
全網最詳細的大數據Kafka文章系列,強烈建議收藏加關注!?
新文章都已經列出歷史文章目錄,幫助大家回顧前面的知識重點。
目錄
系列歷史文章
Kafka如何保證數據不丟失
一、如何保證生產者數據不丟失
1) 消息生產分為同步模式和異步模式
2) 消息確認分為三個狀態
3) 在同步模式下
4) 在異步模式下
二、如何保證broker端數據不丟失
broker端:
三、如何保證消費端數據不丟失
消費端:
四、總結
生產者端
broker端
消費端
系列歷史文章
2021年大數據Kafka(十二):??Kafka配額限速機制??
2021年大數據Kafka(十一):??Kafka的消費者負載均衡機制和數據積壓問題??
2021年大數據Kafka(十):kafka生產者數據分發策略
2021年大數據Kafka(九):kafka消息存儲及查詢機制原理
2021年大數據Kafka(八):Kafka如何保證數據不丟失
2021年大數據Kafka(七):Kafka的分片和副本機制
2021年大數據Kafka(六):??安裝Kafka-Eagle??
2021年大數據Kafka(五):??Kafka的java API編寫??
2021年大數據Kafka(四):??kafka的shell命令使用??
2021年大數據Kafka(三):??Kafka的集群搭建以及shell啟動命令腳本編寫??
2021年大數據Kafka(二):??Kafka特點總結和架構??
2021年大數據Kafka(一):??消息隊列和Kafka的基本介紹??
Kafka如何保證數據不丟失
一、如何保證生產者數據不丟失
1) 消息生產分為同步模式和異步模式
2) 消息確認分為三個狀態
- a) 0:生產者只負責發送數據
- b) 1:某個partition的leader收到數據給出響應
- c) -1:某個partition的所有副本都收到數據后給出響應
3) 在同步模式下
- a) 生產者等待10S,如果broker沒有給出ack響應,就認為失敗。
- b) 生產者重試3次,如果還沒有響應,就報錯。
4) 在異步模式下
- a) 先將數據保存在生產者端的Buffer中。Buffer大小是2萬條。 32M
- b) 滿足數據閾值或者時間閾值其中的一個條件就可以發送數據。
- c) 發送一批數據的大小是500條。16Kb
二、如何保證broker端數據不丟失
broker端:
- broker端的消息不丟失,其實就是用partition副本機制來保證。
- Producer ack -1(all). 能夠保證所有的副本都同步好了數據。其中一臺機器掛了,并不影響數據的完整性。
三、如何保證消費端數據不丟失
消費端:
????????通過offset commit 來保證數據的不丟失,kafka自己記錄了每次消費的offset數值,下次繼續消費的時候,會接著上次的offset進行消費。 ????????而offset的信息在kafka0.8版本之前保存在zookeeper中,在0.8版本之后保存到topic中,即使消費者在運行過程中掛掉了,再次啟動的時候會找到offset的值,找到之前消費消息的位置,接著消費,由于offset的信息寫入的時候并不是每條消息消費完成后都寫入的,所以這種情況有可能會造成重復消費,但是不會丟失消息。四、總結
生產者端
broker端
broker端主要是通過數據的副本和 ack為-1 來保證數據不丟失操作
消費端
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
總結
以上是生活随笔為你收集整理的2021年大数据Kafka(八):Kafka如何保证数据不丢失的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据Kafka(七):Kaf
- 下一篇: 2021年大数据Kafka(九):kaf