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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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;不需要重新打包 目录一、解决方…