docker安裝kafka、zookeeper詳細步驟

Kafka 簡介

Kafka 是一個分布式流處理平臺,由 LinkedIn 開發并開源,主要用于高吞吐量的實時數據管道和流處理。

核心特性

  • 高吞吐量:支持每秒百萬級消息處理,適合大數據場景。
  • 持久化存儲:消息可持久化到磁盤,并支持多副本備份。
  • 分布式架構:支持水平擴展,通過分區(Partition)實現并行處理。
  • 多客戶端支持:提供 Producer、Consumer 和 Stream API,支持多種語言。

核心概念

  • Topic:消息的分類單位,邏輯上的數據流。
  • Partition:Topic 的物理分片,每個 Partition 是有序的消息隊列。
  • Broker:Kafka 集群中的單個節點,負責存儲和轉發消息。
  • Producer:向 Topic 發布消息的客戶端。
  • Consumer:從 Topic 訂閱消息的客戶端,支持消費者組(Consumer Group)實現負載均衡。

典型應用場景

  • 實時日志收集與分析(如 ELK 棧)。
  • 事件溯源(Event Sourcing)和消息隊列。
  • 流處理(如與 Flink、Spark Streaming 集成)。

ZooKeeper 簡介

ZooKeeper 是一個分布式協調服務,由 Apache 開發,用于解決分布式系統中的一致性和管理問題。

核心特性

  • 高可用性:基于多節點集群,避免單點故障。
  • 強一致性:通過 ZAB 協議(ZooKeeper Atomic Broadcast)保證數據一致性。
  • 輕量級:提供簡單的 API 和基于內存的數據模型。
  • 觀察機制:支持 Watcher 機制,實時監聽節點變化。

核心概念

  • ZNode:ZooKeeper 中的數據單元,類似文件系統的節點,可存儲少量數據。
  • Session:客戶端與 ZooKeeper 服務器的連接會話,通過心跳保持活性。
  • Watcher:監聽 ZNode 的變化(如創建、刪除、數據更新)。

典型應用場景

  • 分布式鎖(如實現互斥訪問)。
  • 配置管理(集中式存儲配置信息)。
  • 服務注冊與發現(如 Dubbo、Kafka 依賴 ZooKeeper)。

Kafka 與 ZooKeeper 的關系

  • 早期版本:Kafka 依賴 ZooKeeper 存儲元數據(如 Topic 配置、Broker 列表、消費者偏移量)。
  • Kafka 2.8+:逐步引入 KRaft 模式(基于 Raft 協議),替代 ZooKeeper 實現自管理元數據。
  • 關鍵作用:ZooKeeper 幫助 Kafka 實現 Broker 選舉、分區 Leader 選舉和集群狀態同步。

區別對比

維度 Kafka ZooKeeper
核心功能 高吞吐量消息隊列和流處理 分布式協調與一致性服務
數據模型 基于 Topic 和 Partition 的消息流 基于 ZNode 的樹形結構
一致性協議 依賴 ZooKeeper 或 KRaft 協議 基于 ZAB 協議
典型依賴 早期依賴 ZooKeeper 獨立運行,被其他系統依賴

安裝 ZooKeeper 和 kafka

// ZooKeeper 
docker pull bitnami/zookeeper:latest// kafka
docker pull bitnami/kafka:latest

創建目錄結構

// 創建目錄
sudo mkdir -p /root/kafka-zookeeper-cluster/{zookeeper1,zookeeper2,zookeeper3}/{data,datalog,conf} /root/kafka-zookeeper-cluster/{kafka1,kafka2,kafka3}// 修改目錄所有權為 UID 1001(Bitnami 默認用戶)
sudo chown -R 1001:1001 /root/kafka-zookeeper-cluster// 確保目錄可讀寫
sudo chmod -R 755 /root/kafka-zookeeper-cluster

為每個 ZooKeeper 節點生成 JAAS 文件

// 創建 ZooKeeper JAAS 配置文件
cat <<EOF > /root/kafka-zookeeper-cluster/zookeeper1/conf/jaas.conf
Server {org.apache.zookeeper.server.auth.DigestLoginModule requireduser_root="123456";
};
Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="root"password="123456";
};
EOF// 復制到其他 ZooKeeper 節點
cp -r /ro

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

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

相關文章

Photoshop - Ps 編輯圖像

使用基本圖像編輯技術&#xff0c;讓圖像展現出最好的一面。1.修剪和拉直使用裁剪工具&#xff0c;可以修剪邊緣&#xff0c;更改圖像的形狀和大小&#xff0c;甚至可以對圖像進行拉直和彎曲的操作。2.改善亮度和色彩點擊菜單欄-編輯-調整-亮度/對比度&#xff0c;調整圖像的亮…

SpringBoot 配置文件在運維開發中的應用

在 SpringBoot 項目的運維開發工作里&#xff0c;配置文件相關知識是繞不開的重要內容。它關乎著項目在不同環境下的靈活部署、參數調整&#xff0c;直接影響著應用的穩定性與可維護性。接下來&#xff0c;我們就從臨時屬性、屬性加載優先順序、配置文件分類這幾個維度&#xf…

雷卯國產化之SE3401完全替代AOS的AO3401

上海雷卯PMOS型號SE3401 pin to pin替代AOS型號AO3401&#xff0c;已經有很多客戶選用 SE3401替代AO3401&#xff0c;客戶可以獲得更好的價格和更快的交期。特別是在一些受空間收下限的小電子設備很受青睞。參數對比如下&#xff1a;以下是SE3401&#xff08;P溝道MOSFET&#…

多語言與零樣本語音識別新突破:基于發音特征分類的方法

多語言與零樣本語音識別新突破:基于發音特征分類的方法 在語音識別領域,多語言和零樣本(zero-shot)語言的識別一直是一個極具挑戰性的課題。近期,京都大學的研究團隊提出了一種全新的方法,通過引入國際音標(IPA)和發音特征(Articulatory Features)來提升語音識別系統…

1.8 Memory

1.Memory簡介 2.Memory中各參數的功能和作用1.Memory簡介 1).Memory(內存)模塊它是unity中監視內存使用情況的關鍵工具, 它能幫助我們識別哪些資源在占有大量內存,是否存在內存泄露或垃圾回收頻繁等問題2).游戲中如果出現以下問題, 可以重點觀察memorya.游戲卡頓, 掉幀- 表現: …

國家統計局數據爬取——機器學習

這個代碼是一個用于爬取國家統計局網站數據的Python腳本。下面我將詳細解釋代碼的各個部分及其設計思路。 代碼結構概述 import requests # 發送HTTP請求 from bs4 import BeautifulSoup # 解析HTML import pandas as pd # 數據處理和存儲 import time # 時間控制 import…

內存管理(智能指針,內存對齊,野指針,懸空指針)

&#x1f4cc; 1. 野指針 (Wild Pointer)什么是野指針&#xff1f;野指針指的是未初始化的指針變量。它指向的內存地址是隨機的、未知的。產生原因cppint* ptr; // 野指針&#xff01;未初始化&#xff0c;指向隨機地址 *ptr 10; // 危險&#xff01;可能破壞系統內存char* st…

Spring代理的特點

一.Spring代理的特點1.依賴注入和初始化影響的是原始的對象。2.代理和目標是兩個對象&#xff0c;二者成員變量不共用數據。二.測試首先準備以下幾個類。Bean1package com.example.springdemo.demos.a13;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.…

嵌入式學習日記(35)TCP并發服務器構建

單循環服務器&#xff1a;服務端同一時刻只能處理一個客戶端的任務并發服務器&#xff1a;服務端同一時刻可以處理多個客戶端的任務TCP并發服務器構建&#xff1a;TCP&#xff1a; 1. 建立連接&#xff0c;一對一TCP服務端并發模型&#xff1a;1. 多進程進程資源開銷大&#x…

【Flask】測試平臺開發實戰-第二篇

概述&#xff1a;在上一篇我們已經將后端初始化服務后前端的vue框架初始化已經搭建完整&#xff0c;并且可以運行看到界面&#xff0c;服務正常&#xff0c;當然我們看到的前端數據都是mock下的假數據&#xff0c;并不是真實的&#xff0c;這篇我們來開發實現第一個功能&#x…

聊一聊 .NET 的 AssemblyLoadContext 可插拔程序集

一&#xff1a;背景 1. 講故事 最近在分析一個崩潰dump時&#xff0c;發現禍首和AssemblyLoadContext有關&#xff0c;說實話這東西我也比較陌生&#xff0c;后來查了下大模型&#xff0c;它主要奔著替代 .NetFrameWork 時代的 AppDomain 的&#xff0c;都是用來做晚期加卸載&a…

Java中使用Spring Boot+Ollama實現本地AI的MCP接入

目錄結構完善spring bootpom.xml添加依賴application.ymlMCP 工具配置 mcp-servers.json配置類編寫API在我的上一篇文章搭建好本地的聊天機器人后&#xff0c;準備接入MCP進一步增強AI的能力&#xff0c;以實現類似手機AI的功能 參考的是第二篇文章鏈接其內容比較精煉&#x…

C#正則表達式與用法

&#x1f31f; C# 常用正則表達式與用法C# 使用正則需要引用命名空間&#xff1a;using System.Text.RegularExpressions; 常用方法&#xff1a;Regex.IsMatch(input, pattern) → 返回 bool&#xff0c;用于驗證Regex.Match(input, pattern) → 返回 Match 對象&#xff0c;可…

從0開始學習Java+AI知識點總結-27.web實戰(Maven高級)

一、分模塊設計與開發&#xff1a;讓項目結構更清晰1.1 為什么需要分模塊&#xff1f;單模塊開發的痛點在小型項目中&#xff0c;單模塊&#xff08;所有代碼放在一個工程&#xff09;或許能滿足需求&#xff0c;但項目規模擴大后會出現兩大核心問題&#xff1a;維護成本高&…

Ferris Wheel (貪心 | 雙指針)

題目&#xff1a;思路&#xff1a;本題注意題目的條件即可&#xff0c;題意說一個摩天輪可以坐一個人或者兩個人&#xff0c;那么顯然我們就可以貪心一下具體的&#xff0c;我們可以讓最小的去匹配最大的&#xff0c;如果此時大于 x&#xff0c;那么顯然我們根本無法使得 最大的…

課程視頻怎么加密?在線教育機構常用的6個課程加密方法

知識付費時代&#xff0c;課程視頻是教育機構的核心資產。但是不難發現&#xff0c;課程視頻的安全卻得不到保障。各大購物平臺搜索課程名稱&#xff0c;便出現了許多盜版課程。如何有效防止課程被翻錄和二次傳播&#xff0c;成為急需解決的關鍵問題。今天這期分享點干貨&#…

SOME/IP-SD中”服務器服務組播端點”、“客戶端服務組播端點”與“IPv4組播選項的區分

<摘要> AUTOSIP-SD協議中組播端點&#xff08;Multicast Endpoint&#xff09;在不同上下文中的角色與表述差異。準確理解“服務器服務組播端點”、“客戶端服務組播端點”與“IPv4組播選項”中配置的端點之間的關系&#xff0c;是正確實現組播事件分發機制的關鍵。這涉及…

計算機是如何運行的

目錄 一&#xff0c;計算機是如何組成的 1.1&#xff0c;CPU中央處理單元 1.1.1&#xff0c;CPU的構成和屬性 1.1.2&#xff0c;如何判斷cpu的好壞 1.1.3&#xff0c;指令 1.1.4&#xff0c;CPU的緩存 1.2&#xff0c;操作系統 1.2.1&#xff0c;進程 1.2.2&#xff0…

JavaScript性能優化:實戰技巧與高效策略

JavaScript性能優化實戰技術文章大綱性能優化的重要性解釋為什么性能優化對用戶體驗和業務指標至關重要列舉常見性能問題的影響&#xff08;如跳出率、轉化率下降&#xff09;代碼層面的優化減少全局變量使用&#xff0c;避免內存泄漏使用事件委托減少事件監聽器的數量避免頻繁…

解決.env.production 寫死 IP 的問題:Vue + config.json 運行時加載方案

背景&#xff1a;前端常用 .env.production 在構建時寫死 API 地址 場景&#xff1a;運維部署時經常不知道目標主機 IP/域名 問題&#xff1a;每次 IP 變動都要重新編譯 → 增加運維成本 引出需求&#xff1a;只修改 IP 就能完成部署&#xff0c;不需要重新打包 目錄一、解決方…