Kafka + Kafka-UI

文章目錄

  • 前言
    • 🐳 一、使用純 Kafka + Kafka-UI (無 Zookeeper)Docker 配置
    • 🚀 啟動步驟
    • ? 服務啟動后地址
    • 🔥 注意事項(使用 Kraft)
    • ? NestJS Kafka 連接不變
    • 🧠 額外補充
    • 📦 kafka/README.md 內容:
  • Kafka Kraft 模式部署指南
    • 🐳 使用 Docker-Compose 快速啟動
    • 🌐 服務地址
    • 🛠? 常用運維指令
      • 查看所有容器狀態
      • 查看 Kafka UI 日志
      • 查看 Kafka Broker 日志
      • 創建 Topic(進入 Kafka 容器內部執行)
      • 查看 Topic 列表
      • 查看 Topic 消息
    • ? NestJS 配置 Kafka
    • 🚨 注意事項


前言

? 使用 不需要 Zookeeper 的 Kafka —— 那就是 Kafka KRaft 模式(KRaft = Kafka Raft Metadata Mode),從 Kafka 2.8+ 起官方支持,3.3+ 開始默認推薦

這樣可以:

  • 去掉 zookeeper 依賴
  • 簡化部署,性能更高
  • 更符合現在 Kafka 的新一代標準架構

🐳 一、使用純 Kafka + Kafka-UI (無 Zookeeper)Docker 配置

這里直接給你新版 docker-compose.yml(最新流行寫法)👇:

version: '3.8'services:kafka:image: bitnami/kafka:3.6container_name: kafkaports:- '9092:9092'environment:- KAFKA_CFG_NODE_ID=0 - KAFKA_CFG_PROCESS_ROLES=broker,controller- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER- KAFKA_CFG_LOG_DIRS=/bitnami/kafka/data- KAFKA_KRAFT_CLUSTER_ID=替換成base64的uuid- ALLOW_PLAINTEXT_LISTENER=yesvolumes:- kafka_data:/bitnami/kafkakafka-ui:image: provectuslabs/kafka-ui:latestcontainer_name: kafka-uiports:- '8080:8080'environment:- KAFKA_CLUSTERS_0_NAME=kraft-kafka- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092- DYNAMIC_CONFIG_ENABLED=truevolumes:kafka_data:

🚀 啟動步驟

docker-compose up -d

? 服務啟動后地址

服務地址說明
Kafka Brokerlocalhost:9092NestJS 直接連
Kafka UIhttp://localhost:8080查看 Topic、消息

🔥 注意事項(使用 Kraft)

說明備注
控制器Kafka 自己用 Raft 協議管理元數據,不再需要 ZooKeeper
單節點開發環境OK,生產建議部署多節點控制器
鏡像推薦使用 bitnami/kafka,官方純凈版 Kraft 支持最好

? NestJS Kafka 連接不變

new Kafka({clientId: 'seckill-service',brokers: ['localhost:9092'],
});

🧠 額外補充

特性Zookeeper版 KafkaKraft版 Kafka
簡單性? 復雜? 簡潔
啟動速度
部署節點數量
生產是否推薦使用需要搭建多個 Broker需要搭建多個 Controller Broker

? kafka/README.md 運維指令集和最佳實踐


📦 kafka/README.md 內容:

Kafka Kraft 模式部署指南

🐳 使用 Docker-Compose 快速啟動

cd kafka
docker-compose up -d

? 啟動以下容器:

  • kafka (KRaft模式,無需Zookeeper)
  • kafka-ui(管理界面)

🌐 服務地址

服務地址說明
Kafka Brokerlocalhost:9092供 NestJS 項目連接使用
Kafka UIhttp://localhost:8080可視化查看 Topic / 消費者組等信息

🛠? 常用運維指令

查看所有容器狀態

docker ps

查看 Kafka UI 日志

docker-compose logs kafka-ui

查看 Kafka Broker 日志

docker-compose logs kafka

創建 Topic(進入 Kafka 容器內部執行)

docker exec -it kafka bash# 創建 topic
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic seckill-orders --partitions 3 --replication-factor 1

查看 Topic 列表

kafka-topics.sh --bootstrap-server localhost:9092 --list

查看 Topic 消息

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic seckill-orders --from-beginning

? NestJS 配置 Kafka

NestJS 項目中連接 Kafka:

new Kafka({clientId: 'seckill-service',brokers: ['localhost:9092'],
});

🚨 注意事項

  • 這是開發測試環境配置(單節點 Kraft)
  • 生產環境應至少部署 3 個 Broker 節點,啟用多控制器選舉
  • 確認端口號未被占用(默認 9092 / 8080)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903122.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI聲像融合守護幼兒安全——打罵/異常聲音報警系統的智慧防護

幼兒園是孩子們快樂成長的搖籃,但打罵、哭鬧或尖叫等異常事件可能打破這份寧靜,威脅幼兒的身心安全。打罵/異常聲音報警系統,依托尖端的AI聲像融合技術,結合語音識別、情緒分析與視頻行為檢測,為幼兒園筑起一道智能安全…

Qt網絡數據解析方法總結

在Qt中解析網絡數據通常涉及接收原始字節流,并將其轉換為有意義的應用層數據。以下是詳細步驟和示例: 1. 網絡數據接收 使用QTcpSocket或QUdpSocket接收數據,通過readyRead()信號觸發讀取: // 創建TCP Socket并連接信號 QTcpSo…

unity編輯器的json驗證及格式化

UNITY編輯器的json格式化和驗證工具資源-CSDN文庫https://download.csdn.net/download/qq_38655924/90676188?spm1001.2014.3001.5501 反復去別的網站驗證json太麻煩了 用這個工具能方便點 # Unity JSON工具 這是一個Unity編輯器擴展,用于驗證、格式化和壓縮JSO…

學習筆記:Qlib 量化投資平臺框架 — FIRST STEPS

學習筆記:Qlib 量化投資平臺框架 — FIRST STEPS Qlib 是微軟亞洲研究院開源的一個面向人工智能的量化投資平臺,旨在實現人工智能技術在量化投資中的潛力,賦能研究,并創造價值,從探索想法到實施生產。Qlib 支持多種機器…

操作系統:計算機世界的基石與演進

一、操作系統的本質與核心功能 操作系統如同計算機系統的"總管家",在硬件與應用之間架起關鍵橋梁。從不同視角觀察,其核心功能呈現多維價值: 硬件視角的雙重使命: 硬件管理者:通過內存管理、進程調度和設…

基于單片機的溫濕度采集系統(論文+源碼)

2.1系統的功能 本系統的研制主要包括以下幾項功能: (1)溫度檢測功能:對所處環境的溫度進行檢測; (2)濕度檢測功能:對所處環境的濕度進行檢測; (3)加熱和制冷功能:可以完成加熱和制冷功能。 (4)加濕和除…

webrtc使用

demo https://www.webrtc-experiment.com/ github開源demo https://github.com/muaz-khan/WebRTC-Experiment.git ws傳遞webrtc信令,本機不需要stun服務器,遠端電腦需要ice服務器建立peer連接 const WebSocket = require(ws); const express =

【數據可視化-25】時尚零售銷售數據集的機器學習可視化分析

?? 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN人工智能領域的優質創作者,提供AI相關的技術咨詢、項目開發和個…

Python Cookbook-6.11 緩存環的實現

任務 你想定義一個固定尺寸的緩存,當它被填滿時,新加入的元素會覆蓋第一個(最老的)元素。這種數據結構在存儲日志和歷史信息時非常有用。 解決方案 當緩存填滿時,本節解決方案及時地修改了緩存對象,使其從未填滿的緩存類變成了…

OpenCv高階(九)——背景建模

目錄 一、背景建模的核心目標與核心挑戰 1. 核心目標 2. 核心挑戰 ?二、背景建模模型 1、幀差法原理 2. 概率模型(Parametric Models) (1)高斯混合模型(Gaussian Mixture Model, GMM) (…

小重構,大收益!技術重構實踐:如何優雅升級老舊接口

重構格言:"優秀系統不是設計出來的,而是通過持續重構演進而來的。" —— Martin Fowler《重構:改善既有代碼的設計》 希望本文能為您的重構之旅提供指引,讓老舊系統煥發新生! 一、背景:一個“穩定…

OSPF中DR/BDR的選舉

OSPF 開放式最短路徑優先協議-CSDN博客 選舉原因:廣播網絡中使路由信息交換更加高速有序,可以降低需要維護的鄰接關系數量 基本概念: DR (Designated Router, 指定路由器):負責在廣播網絡(以太網)或NBMA網…

[特殊字符]?[特殊字符]Linux驅動開發入門 | 并發與互斥機制詳解

文章目錄 👨?💻Linux驅動開發入門 | 并發與互斥機制詳解📌為什么驅動中需要并發和互斥控制?💡常見的并發控制機制🔐自旋鎖和信號量通俗理解🌀自旋鎖(Spinlock)——“廁所…

Kafka 架構設計和組件介紹

什么是Apache Kafka? Apache Kafka 是一個強大的開源分布式事件流平臺。它最初由 LinkedIn 開發,最初是一個消息隊列,后來發展成為處理各種場景數據流的工具。 Kafka 的分布式系統架構支持水平擴展,使消費者能夠按照自己的節奏檢…

elk中kibana一直處于可用和降級之間且es群集狀態并沒有問題的解決方法

前言 在公司部elk的時候發現kibana的web界面一直很卡,數據量為0也會很卡,es群集狀態正常,資源足夠。 報錯信息 [2025-03-17T09:54:50.19400:00][INFO ][status] Kibana is now available (was degraded) [2025-03-17T09:55:03.28000:00][I…

什么是視頻上墻

視頻聯動上墻是指當監控系統中出現報警或其他特定事件時,相關的視頻畫面能夠自動切換并顯示在指定的監控大屏或顯示設備上,以便監控人員能夠快速、直觀地查看事件現場的情況,及時做出響應和處理。 具體介紹? 系統組成 :一般由前端…

26考研——存儲系統(3)

408答疑 文章目錄 一、存儲器概述二、主存儲器三、主存儲器與 CPU 的連接四、外部存儲器五、高速緩沖存儲器六、虛擬存儲器七、參考資料鮑魚科技課件26王道考研書 八、總結復習提示思考題常見問題和易混淆知識點 一、存儲器概述 文章鏈接: 點擊跳轉 二、主存儲器 文章鏈接: …

.NET 6 + Dapper + User-Defined Table Type

大家都知道,對于SQL Server IN是有限制條件的,如果IN里面的內容過多,在執行的時候會被自動截斷,因而導致查詢到的結果不是實際需要的結果。 select * from Payments where Id in (1,2,3,4,...) 為了解決上面的限制,可以…

MySQL 8(Ubuntu 18.04.6 LTS)安裝筆記

一、前言 其實之前已經寫過一篇筆記【MySQL 8.0.34(x64)安裝筆記】。機緣巧合,這次遇到的環境是Ubuntu 18.04 LTS,相比Windows平臺的安裝,對mysql的版本以及依賴的選擇,稍微要窄一些。特作筆記。 二、準備…

學習 Apache Kafka

學習 Apache Kafka 是一個很好的選擇,尤其是在實時數據流處理和大數據領域。以下是一個系統化的學習建議,幫助你從入門到進階掌握 Kafka: 1. 先決條件 在開始 Kafka 之前,確保你具備以下基礎: Java 基礎:K…