溫馨提示×

Kafka在Linux下如何進行版本升級

小樊
32
2025-10-17 03:10:49
欄目: 智能運維

一、升級前準備

  1. 備份關鍵數據:備份Kafka配置文件(如server.properties、zookeeper.properties)、數據目錄(log.dirs指定路徑)、日志文件及自定義Topic配置,防止升級過程中數據丟失。
  2. 下載新版本包:從Apache Kafka官方網站下載目標版本的二進制包(如kafka_2.13-3.6.0.tgz),建議選擇穩定 release 版本。
  3. 檢查兼容性:查閱新版本官方文檔,確認與現有集群的兼容性(如Zookeeper版本、客戶端庫版本、Broker配置參數變化),避免因不兼容導致升級失敗。
  4. 規劃升級方式:根據集群規模和服務連續性要求,選擇停服升級(適合小集群或允許短暫停機)或滾動升級(適合生產環境,逐個節點升級,不影響整體服務)。

二、具體升級步驟

  1. 停止現有服務
    • 若采用停服升級,停止Kafka和Zookeeper服務:
      sudo systemctl stop kafka
      /opt/zk/zookeeper-3.5.9/bin/zkServer.sh stop  # 根據實際Zookeeper路徑調整
      
    • 若采用滾動升級,逐個停止集群中的Broker節點(每次停止一個,待新版本啟動并加入集群后再處理下一個)。
  2. 解壓新版本包:將下載的新版本包解壓到指定目錄(如/opt/kafka_new):
    tar -xzf kafka_2.13-3.6.0.tgz -C /opt/
    mv /opt/kafka_2.13-3.6.0 /opt/kafka_new  # 重命名便于管理
    
  3. 遷移配置文件:將舊版本的config目錄復制到新版本中,更新與新版本不兼容的配置項:
    cp -r /opt/kafka_old/config/* /opt/kafka_new/config/  # kafka_old為舊版本目錄
    
    • 重點檢查以下配置項:
      • broker.id:確保每個Broker ID唯一;
      • listeners/advertised.listeners:更新Broker監聽地址和對外暴露地址(若集群網絡發生變化);
      • log.message.format.version/inter.broker.protocol.version:若跨大版本升級,需根據官方文檔設置兼容的協議版本(如從2.8升級到3.6,可能需要逐步調整)。
  4. 啟動新版本服務
    • 停服升級:直接啟動新版本Kafka和Zookeeper:
      /opt/kafka_new/bin/zookeeper-server-start.sh /opt/kafka_new/config/zookeeper.properties &
      /opt/kafka_new/bin/kafka-server-start.sh /opt/kafka_new/config/server.properties &
      
    • 滾動升級:啟動當前節點的新版本Kafka,使用kafka-broker-api-versions.sh工具驗證節點是否成功加入集群(返回“Supported versions”列表說明成功)。
  5. 驗證升級結果
    • 使用命令行工具檢查Broker版本:
      /opt/kafka_new/bin/kafka-topics.sh --version  # 應顯示新版本號
      
    • 創建測試Topic并發送/消費消息,驗證功能正常:
      # 創建Topic
      /opt/kafka_new/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test_upgrade
      # 生產消息
      /opt/kafka_new/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test_upgrade
      # 消費消息
      /opt/kafka_new/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_upgrade --from-beginning
      

三、升級后注意事項

  1. 監控集群狀態:升級后密切關注Kafka集群的健康狀況(如Broker存活狀態、分區Leader分布、副本同步情況),使用Prometheus+Grafana或Kafka自帶的kafka-topics.sh --describe等工具排查異常。
  2. 清理舊版本:確認新版本運行穩定后,刪除舊版本目錄(如/opt/kafka_old),釋放磁盤空間。
  3. 回退預案:若升級后出現嚴重問題(如數據丟失、服務無法啟動),可快速回退到舊版本:
    • 停止新版本Kafka服務;
    • 啟動舊版本Kafka服務(路徑如/opt/kafka_old/bin/kafka-server-start.sh);
    • 恢復備份的配置文件和數據。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女