当前位置: 首页 > news >正文

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

创建目录结构

mkdir -p /root/kafka-zookeeper-cluster/{zookeeper1,zookeeper2,zookeeper3,kafka1,kafka2,kafka3}# 修改目录所有权为 UID 1001(Bitnami 默认用户)
sudo chown -R 1001:1001 /root/kafka-zookeeper-cluster# 确保目录可读写
sudo chmod -R 755 /root/kafka-zookeeper-cluster

Zookeeper集群部署(3个)

1. 启动Zookeeper节点1

后台启动容器

使用 -d 参数以 detached 模式启动容器,使其在后台运行。

容器命名

通过 --name zoo1 为容器指定名称 zoo1,便于后续通过名称管理容器(如启动、停止或查看日志)。

网络配置

使用 --network wdzm_network 将容器接入自定义 Docker 网络 wdzm_network。需确保该网络已提前创建,以实现容器间通过名称直接通信。

数据持久化

通过 -v 挂载卷实现数据持久化:

  • 将容器内的 /bitnami/zookeeper/data(存储快照)映射
http://www.dtcms.com/a/355214.html

相关文章:

  • 【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件
  • COLMAP 和 SFM的关系是什么?
  • 微服务即时通信系统(十三)--- 项目部署
  • 第十七章 Java基础-常用API-System
  • ArkTS 与 TypeScript 的关系及鸿蒙开发常见错误案例
  • Upload Symbols Failed
  • 万字详解架构设计:业务架构、应用架构、数据架构、技术架构、单体、分布式、微服务都是什么?
  • 只用三招,无招重启钉钉
  • Video Ocean 接入 GPT-5
  • GeoScene Maps 开发-核心地图-标记点管理-用户交互弹窗
  • 大白话拆解力扣算法 HOT 100 - 哈希/双指针/滑动窗口
  • Mac Pro M4芯片 安装 VMware Fusion 和 windows
  • Vue Router 路由守卫详解与面试指南
  • 实体门店怎么利用小程序做好分销
  • 目标检测领域基本概念
  • 【Python】QT(PySide2、PyQt5):Qt Designer,VS Code使用designer,可能的报错
  • 发那科机器人弧焊电源气体省气装置
  • esp32c2 at 请问通过HTTPS进行OTA升级的AT命令流程有吗?
  • 专项智能练习(多媒体概述)
  • 如果已经安装了electron的一个版本,再次使用命令npm install electron不指定electron版本时,会下载安装新版本么?
  • VS2022+QT6.7+Multimedia(捕获Windows音频数据,生成实时频谱)
  • Day16_【机器学习建模流程】
  • Python备份实战专栏第2/6篇:30分钟搭建企业级API认证系统,安全性吊打90%的方案
  • R语言贝叶斯方法在生态环境领域中的高阶技术应用
  • Mac 开发环境与配置操作速查表
  • 基于Vue2+elementUi实现树形 横向 合并 table不规则表格
  • 华为S5720S重置密码
  • 前沿技术观察:从AI 时代到量子计算的下一站
  • 智能物联网(AIoT)核心技术落地路径与企业数字化转型适配方案
  • 如何通俗的理解操作系统的IO多路复用