解決kafka ISR缺失嚴重導致消費異常的方法

解決kafka ISR缺失嚴重導致消費異常的方法

故障現象

  • 生產環境flume無法消費kafka,sink的文件爲空。

  • nifi中往kafka寫消息報錯

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-RA8elWpY-1592536209498)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200619103541526.png)]

故障排查

  • 元數據主題__consumer_offsets正常

  • 對應無法消費的業務topic存在部分分區的ISR列表丟失2/3,且隨着時間的推移,isr缺失的分區佔比在增加

且flume端的消費組一直在rebalance。

嘗試調整參數

kafka.consumer.session.timeout.ms=30000ms—增大消費者連接GroupCoordinator會話超時時間
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-50dRhE91-1592536113609)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20200619104612641.png)]

flume sink 文件依舊爲空,再次調大此參數依舊沒用,flume的consumerGroup依舊顯示在rebalancing

故障解決方法

因爲之前出現過類似isr缺失的現象,當時增大了此參數

num.replica.fetchers-------leader中進行復制的線程數,增大這個數值會增加relipca的IO

默認是單線程,當時增加到2

但是這次的問題kafka的server.log沒有任何ERROR,能看到的只有nifi生產端的無法生產的ERROR日誌(連接broker失敗),以及flume消費端的大批量INFO日誌(consumer group is rebalancing)

抱着試一試的方式將幾十臺broker中的兩臺num.replica.fetchers參數修改爲4,增大了一倍,然後重啓broker

由於數據量比較龐大,且此broker正在重啓,kafka server.log報錯如下

在這裏插入圖片描述

屬於正常狀況,耐心等待重啓的broker中副本加入到isr中即可

之後發現flume的sink文件大小有所增加,證明開始消費了。

最後滾動重啓所有broker,flume恢復消費,nifi後續生產也不報錯了。

疑問點

  • flume修改參數,消費組日誌信息中爲何依舊提示持續rebalancing?

  • kafka的isr缺失爲何導致nifi生產端鏈接broker失敗?—也許集羣網絡的問題也可能有

kafka的isr同步能力參數見鏈接解決ISR丟失—— Kafka副本同步leader能力參數

遇到類似isr缺失的問題可以嘗試調整這些參數來解決

  • 但是這些參數的調整需要與kafka的數據量作對比,現在還沒有一個數據量標準來衡量這些參數設置。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章