Chuyển đến nội dung chính

第 22 課:使用 Strimzi 操作符的 APACHE KAFKA 集群

使用 Strimzi Operator、KRaft 模式(無 Zookeeper)、主題管理、消費者群組、模式註冊表和監控在 Kubernetes 上部署 Apache Kafka HA 叢集。

🔒 DevSecOps — 第 22 課 第 22 課:使用 STRIMZI 的 APACHE KAFKA 群集 操作員

使用 Kubernetes HA 在本地部署微服務

第 5 部分:訊息佇列 HA(RabbitMQ、Kafka、Redis)

xdev.asia

🎯 課程目標__HTMLTAG_68___
  • ✅ 了解 Kafka 架構:代理、主題、分區、消費者群組
  • ✅ 使用 Strimzi 部署 Kafka 3 節點叢集(KRaft 模式)
  • ✅ 設定主題、複製、保留
  • ✅ 部署架構登錄檔以實現架構演進
  • ✅ 使用 JMX 指標 + Prometheus 監控 Kafka 群集
  • ✅ 最佳實踐:分區策略、消費者滯後、恰好一次

第 1 部分:APACHE KAFKA 架構

程式碼區塊_0

___HTMLTAG_89__HTMLTAG_90___功能___HTMLTAG_91__HTMLTAG_92___Kafka___HTMLTAG_93__HTMLTAG_94___RabbitMQ___HTMLTAG_95__HTMLTAG_96___ ___HTMLTAG_99__HTMLTAG_100___吞吐量___HTMLTAG_101__HTMLTAG_102___數百萬個訊息/秒___HTMLTAG_103__HTMLTAG_104___數萬___HTMLTAG_105__HTMLTAG_106___ ___HTMLTAG_107__HTMLTAG_108___訊息模型___HTMLTAG_109__HTMLTAG_110___拉動(消費者民意調查)___HTMLTAG_111__HTMLTAG_112___推(經紀人交付)___HTMLTAG_113__HTMLTAG_114___ ___HTMLTAG_115__HTMLTAG_116___排序____HTMLTAG_117__HTMLTAG_118___每個分區___HTMLTAG_119__HTMLTAG_120___每個佇列 (FIFO)___HTMLTAG_121__HTMLTAG_122___ ___HTMLTAG_123__HTMLTAG_124___保留___HTMLTAG_125__HTMLTAG_126___基於時間/大小(天/週)___HTMLTAG_127__HTMLTAG_128___直到消耗___HTMLTAG_129__HTMLTAG_130___ ___HTMLTAG_131__HTMLTAG_132___重播___HTMLTAG_133__HTMLTAG_134___是(偏移搜尋)___HTMLTAG_135__HTMLTAG_136___否(確認後刪除訊息)___HTMLTAG_137__HTMLTAG_138___ ___HTMLTAG_139__HTMLTAG_140___用例___HTMLTAG_141__HTMLTAG_142___事件流、CDC、日誌___HTMLTAG_143__HTMLTAG_144___任務佇列、RPC、路由___HTMLTAG_145__HTMLTAG_146___任務佇列、RPC、路由___HTMLTAG_145__HTMLTAG_146___ ___HTMLTAG_147__HTMLTAG_148___協定____HTMLTAG_149__HTMLTAG_150___Kafka二進位協定____HTMLTAG_151__HTMLTAG_152___AMQP 0.9.1___HTMLTAG_15314MLTAG_15314ML

第 2 部分:安裝 STRIMZI 運算子

程式碼區塊_1


第 3 部分:部署 KAFKA 叢集(KRaft 模式)

3.1。卡夫卡 CRD

___程式碼區塊_2___

3.2。 JMX 指標設定映射

___程式碼區塊_3___

程式碼區塊_4


第 4 部分:主題管理

4.1。 Kafka主題 CRD

___程式碼區塊_5___

程式碼區塊_6


第 5 部分:KAFKA 使用者和 ACL

程式碼區塊_7


第 6 部分:生產與消費測試

程式碼區塊_8


第 7 部分:架構註冊表

程式碼區塊_9


第 8 部分:監控 KAFKA

程式碼區塊_10

程式碼區塊_11


💡 重點

    ___HTMLTAG_189__HTMLTAG_190___Strimzi Operator:在 K8s 上運行 Kafka 的最佳方式,全生命週期管理 ___HTMLTAG_193__HTMLTAG_194___KRaft模式:無ZooKeeper依賴,更簡單的架構 ___HTMLTAG_197__HTMLTAG_198___複製因子 3,min.insync.replicas 2:容忍 1 個代理故障 ___HTMLTAG_201__HTMLTAG_202___分區策略:基於鍵的排序分區,分區增加吞吐量 ___HTMLTAG_205__HTMLTAG_206___消費者群體:並行處理,嚴密監控滯後 ___HTMLTAG_209__HTMLTAG_210___架構註冊表:強制架構演變,防止重大變更

🎯 練習

練習 1:Kafka HA 實驗室

  • 使用 KRaft 部署 3 節點 Kafka 叢集
  • 建立具有 6 個分區的主題,RF=3
  • 產生 100,000 則訊息,殺死 1 個經紀人
  • 驗證沒有資料遺失,消費者趕上__HTMLTAG_227___

練習 2:效能基準

  • 以不同的批次大小執行 kafka- Producer-perf-test.sh
  • 測量吞吐量:訊息/秒、MB/秒
  • 比較壓縮:無、lz4、snappy、zstd

📚 下一篇文章

在第23課:Redis HA — 哨兵和叢集模式中,我們將部署Redis用於快取和即時資料。