kafka的副本同步機制(ISR)


一個topic可以有多個分區,多個副本(一般副本數量不大於分區數量)。一份分區下有多個副本,
ISR表示目前消息量與leader相差不多的副本集合,這是整個副本集合的一個子集”。怎么去理解
可用和相差不多這兩個詞呢?具體來說,ISR集合中的副本必須滿足兩個條件

    1. 副本所在節點必須維持着與zookeeper的連接
    2. 副本最后一條消息的offset與leader副本的最后一條消息的offset之間的差值不能超過指定的閾值
      (replica.lag.time.max.ms) replica.lag.time.max.ms:如果該follower在此時間間隔內一直沒有追
      上過leader的所有消息,則該follower就會被剔除isr列表
    3. ISR數據保存在Zookeeper的/brokers/topics//partitions//state
      節點中
      follower副本把leader副本LEO之前的日志全部同步完成時,則認為follower副本已經追趕上了leader
      副本,這個時候會更新這個副本的lastCaughtUpTimeMs標識,kafk副本管理器會啟動一個副本過期檢
      查的定時任務,這個任務會定期檢查當前時間與副本的lastCaughtUpTimeMs的差值是否大於參數
      replica.lag.time.max.ms 的值,如果大於,則會把這個副本踢出ISR集合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM