Kafka保證分區消息的順序,「先入先出」安全
只有當消息被寫入分區的全部副本時,才被認爲已提交的blog
只要有一個副本是活躍的,已提交的消息就不會丟失同步
消費者只能讀取已經提交的消息it
若是一個或多個副本在同步/非同步之間狀態快速切換,說明集羣內出現問題,一般是JAVA不恰當的垃圾回收配置致使的io
broker安全配置參數:test
複製係數:集羣
主題級別複製係數 replication.factor 配置
broker級別複製係數: default.replication.factor 垃圾回收
不徹底的首領選舉:請求
unclean.leader.election=true broker級別配置 容許不一樣步的副本成爲首領,會面臨丟失消息的風險
最少同步副本:
min.insync.replicas (主題和broker級別)
發送確認:
ack=0 容易丟失消息
ack=1 也會存在丟失消息的問題
ack=all 不會丟失消息,可是會下降吞吐量
配置生產者重試參數:
broker 返回 LEADER_NOT_AVAILABLE 是一個可重試錯誤
broker返回 INVALID_CONFIG 是一個不可重試錯誤
消費者的可靠性配置:
group.id
auto.offset.reset 指定沒有偏移量提交時或請求的偏移量在broker上不存在時,消費者會作什麼
=earliest 消費者會從分區開始位置讀取數據
=latest 消費者從分區末尾開始讀取數據
enable.auto.commit 消費者基於任務調度自動提交偏移量
auto.commit.interval.ms 與上一個參數搭配使用,自動提交偏移量的頻率