kafka消費者offset存儲策略


  由於 consumer 在消費過程中可能會出現斷電宕機等故障,consumer 恢復后,需要從故 障前的位置的繼續消費,所以 consumer 需要實時記錄自己消費到了哪個 offset,以便故障恢 復后繼續消費。

  Kafka 0.9 版本之前,consumer 默認將 offset 保存在 Zookeeper 中,從 0.9 版本開始, consumer 默認將 offset 保存在 Kafka 一個內置的 topic 中,該 topic 為__consumer_offsets。

  

 

  

2、自定義存儲 offset

Kafka 0.9 版本之前,offset 存儲在 zookeeper,0.9 版本及之后,默認將 offset 存儲在 Kafka 的一個內置的 topic 中。

除此之外,Kafka 還可以選擇自定義存儲 offset。

offset 的維護是相當繁瑣的,因為需要考慮到消費者的 Rebalace。

當有新的消費者加入消費者組、已有的消費者退出消費者組或者所訂閱的主題的分區發生變化,就會觸發到分區的重新分配,重新分配的過程叫做 Rebalance

消費者發生 Rebalance 之后,每個消費者消費的分區就會發生變化。因此消費者要首先 獲取到自己被重新分配到的分區,並且定位到每個分區最近提交的 offset 位置繼續消費。 要實現自定義存儲 offset,需要借助 ConsumerRebalanceListener,其中提交和獲取 offset 的方法,需要根據所選的 offset 存儲系統自行實現

 


免責聲明!

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



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