1. 程式人生 > >記一次Kafka不能消費故障

記一次Kafka不能消費故障

背景:

kafka叢集機器升級,使得部分spark Streaming不能消費讀取資料

問題原因:

kafka會自動建立一個預設的topic __consumer_offsets,用於儲存offset到Kafka系統

由於我們叢集kafka節點有7個,當逐漸的下架上架機器後,使得__consumer_offsets  Partition 出現Leader為-1

Kafka將直連Kafka的消費資訊記錄到了__consumer_offset這個topic中,雖然這個topic在我們的叢集中複製因子為3,但當partition所在的3個副本所在的機器都下架後,便會出現Leader為-1的情況 

解決方法:

方法一:設定auto.create.topics.enable =true,刪除topic __consumer_offset即可。 (這種方法只適合於offset儲存到外部系統的情況,否則會丟失offset資訊),刪除後,重啟Kafka,會自動重建__consumer_offset,Spark Streaming消費讀取資料正常。

方法二:事前預防,在做Kafka叢集升級的時候,需要對__consumer_offset也進行資料遷移,遷移方法見

https://blog.csdn.net/lingbo229/article/details/83309208