首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Kafka Topic 建立/刪除異常:Leader -2 與殘留資料徹底清理

     編輯:程式設計疑難解答

現象分析

新增 12 分區 Topic 後出現 Leader: -2,刪除失敗後所有分區 Leader 變為負數(-1/-2),提示 Broker not found -2。根因通常為:

  • Controller 尚未完成分區指派,或 Broker 心跳超時導致 Controller 認定 Broker 失聯。
  • ZooKeeper 中 /brokers/ids 缺少對應 Broker ID,或 /admin/delete_topics 路徑殘留舊標記。
  • Kafka 版本已知 Bug(< 0.11)刪除 Topic 時元資料不一致。

徹底刪除殘留資料步驟

  1. 停止所有 Broker,避免寫入衝突。
  2. ZooKeeper 清理(使用 zkCli.sh):
    rmr /brokers/topics/<topic_name>
    rmr /admin/delete_topics/<topic_name>
    rmr /config/topics/<topic_name>
  3. 磁碟資料清理:在每台 Broker 的 log.dirs 目錄下刪除 <topic_name>-<partition_id> 目錄。
  4. 重啟 Broker,驗證 Topic 已消失:kafka-topics.sh --list --bootstrap-server localhost:9092。

預防建議

  • 升級至 Kafka 2.0+,啟用 delete.topic.enable=true(預設開啟)。
  • 建立 Topic 前確保所有 Broker 存活且 ZooKeeper 連線正常。
  • 使用 kafka-manager 或 Confluent Control Center 圖形化操作,減少手動指令錯誤。

參考資源

CSDN 詳細圖文教程:徹底刪除 Kafka Topic 兩種方法

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved