news 2026/3/12 14:29:49

docker一键部署kafka

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
docker一键部署kafka

1、kafka简介

Kafka 是一个分布式流处理平台,用于构建实时数据管道和流应用程序。它具有水平可扩展性、容错性、高吞吐量等特性,被广泛用于大数据和实时流处理场景。

2、核心概念和特性

核心概念:
Producer(生产者):向 Kafka 主题发布消息的客户端。
Consumer(消费者):从 Kafka 主题订阅并处理消息的客户端。
Broker(代理):Kafka 集群中的单个节点,负责处理消息的存储和转发。
Topic(主题):消息的类别或流名称,生产者向主题发送消息,消费者从主题读取消息。
Partition(分区):每个主题可以被分成多个分区,分区是 Kafka 并行处理的基本单元。每个分区是一个有序、不可变的消息序列。
Replica(副本):分区的副本,用于提供高可用性。每个分区有一个或多个副本,其中一个被选为 Leader,其他为 Follower。
Consumer Group(消费者组):一组消费者共同消费一个主题,每个分区只能被消费者组中的一个消费者消费,从而实现负载均衡。
Offset(偏移量):每条消息在分区中的唯一标识,消费者通过偏移量来追踪已读取的消息位置。

关键特性:
高吞吐量:Kafka 能够处理数百万条消息 per second,即使是在普通的硬件上。
可扩展性:通过增加节点可以轻松扩展集群,支持在线水平扩展。
持久性:消息被持久化到磁盘,并且支持数据备份防止数据丢失。
容错性:通过副本机制,即使部分节点失效,集群仍能继续工作。
实时性:消息被生产者创建后,消费者可以立即读取,延迟极低。

使用场景:
消息队列:作为传统消息队列的替代,用于解耦生产者和消费者。
网站活动跟踪:记录用户活动,如页面浏览、搜索、点击等,用于实时监控或离线分析。
日志聚合:从不同服务收集日志,并使其可用于查询和分析。
流处理:与流处理框架(如 Apache Storm、Spark Streaming、Flink)集成,进行实时数据处理。

架构组件:
Kafka Broker:集群中的每个节点都是一个 Broker,负责存储和转发消息。
ZooKeeper(或 KRaft):用于管理集群元数据、领导者选举和配置管理。从 Kafka 3.0 开始,可以使用 KRaft 模式(不需要 ZooKeeper)来运行 Kafka。
Connector API:用于构建可重用的生产者和消费者,将 Kafka 连接到现有系统。
Streams API:用于构建流处理应用程序,将输入流转换为输出流。

消息传递模型:
Kafka 采用发布-订阅模型,但也可以用于点对点通信(通过单个消费者组)。
数据保留:
Kafka 允许根据时间或大小设置数据保留策略,过期数据将被删除。
安装与部署:
Kafka 可以运行在单机模式(用于开发和测试)或集群模式(用于生产环境)。
版本演进:
从 2.8 版本开始,Kafka 开始引入 KRaft 模式(不再依赖 ZooKeeper),并在 3.0 版本中正式支持。KRaft 模式简化了 Kafka 的架构,提高了稳定性和可管理性。

1、拉取kafka镜像

# 原始docker pull zookeeper:latest# 阿里云x86 架构docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/zookeeper:latest# 阿里云arm 架构docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_zookeeper:latest# 原始docker pull wurstmeister/kafka:latest# 阿里云x86 架构docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/kafka:latest# 阿里云arm 架构docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_kafka:latest

2、zookeeper安装创建目录

mkdir-p /data/zookeeper/{conf,logs,data}

3 运行命令

docker run -d\--restart unless-stopped\--name zookeeper\-p2181:2181\-v /data/zookeeper/data:/data\-v /data/zookeeper/logs:/datalog\-v /etc/localtime:/etc/localtime\zookeeper:latest

4、kafka安装

mkdir-p /data/kafka/datachmod777/data/kafka/data
docker run -d\--restart unless-stopped\--name kafka\-p9092:9092\-eKAFKA_ZOOKEEPER_CONNECT=10.11.12.115:2181\-eKAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092\-eKAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.11.12.115:9092\-eKAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1\-eKAFKA_AUTO_CREATE_TOPICS_ENABLE=true\-v /etc/localtime:/etc/localtime\wurstmeister/kafka:latest

5、kafka基本使用

dockerexec-it kafkabash# 列出所有 Topickafka-topics.sh --list --bootstrap-server10.11.12.115:9092# 创建一个 topickafka-topics.sh --create --bootstrap-server10.11.12.115:9092 --replication-factor1--partitions6--topic nginx#运行kafka生产者发送消息kafka-console-producer.sh --broker-list10.11.12.115:9092 --topic nginx#发送消息{“datas”:[{“channel”:"",“metric”:“temperature”,“producer”:“ijinus”,“sn”:“IJA0101-00002245”,“time”:“1543207156000”,“value”:“80”}],“ver”:“1.0”}#删除kafka的topickafka-topics.sh --bootstrap-server10.11.12.115:9092 --delete --topic nginx

Kafka 的核心价值在于:

解耦系统:生产者和消费者无需直接通信
缓冲削峰:应对流量突发
数据持久化:消息可重放,不丢失
高吞吐量:支持大规模数据处理
实时处理:毫秒级延迟
适用场景:当你需要处理大量实时数据流,且需要保证数据不丢失、支持重放、高吞吐量时,Kafka 是绝佳选择。
不适用场景:如果只需要简单的任务队列,或对延迟要求极高(微秒级),可能有更轻量的选择(如 Redis、RabbitMQ)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/11 22:33:53

Linux学习日记18:线程的分离

一、前言前面我们学习了线程的一些基础知识&#xff0c;学习了线程的创建与使用&#xff0c;今天我们来学习线程的分离与同步。二、线程分离2.1、函数原型函数原型如下&#xff1a;#include <pthread.h> int pthread_detach(pthread_t thread);参数&#xff1a;thread&am…

作者头像 李华
网站建设 2026/3/10 0:43:12

python之知识图谱(networkx)

NetworkX 库介绍与使用指南 NetworkX 是 Python 中用于创建、操作和分析复杂网络&#xff08;图结构&#xff09; 的核心库&#xff0c;支持无向图、有向图、加权图、多重图等多种图类型&#xff0c;内置丰富的图算法&#xff08;路径分析、连通性、中心性、社区检测等&#xf…

作者头像 李华
网站建设 2026/3/11 2:45:29

【技术教程】2025年Python GUI框架选型终极指南

2025年Python GUI框架选型终极指南&#xff08;最新版&#xff09; 以下内容基于2024-2025年真实社区动态与企业实践整理&#xff0c;已反映当前最准确的格局与趋势。 一、2025年Python GUI框架最新格局总览框架当前地位主要变化与趋势&#xff08;2025&#xff09;GitHub星标&…

作者头像 李华
网站建设 2026/3/10 23:44:56

AI代码生成终极指南:OpenReasoning-Nemotron-14B快速上手教程

AI代码生成终极指南&#xff1a;OpenReasoning-Nemotron-14B快速上手教程 【免费下载链接】OpenReasoning-Nemotron-14B 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/OpenReasoning-Nemotron-14B 在当今软件开发领域&#xff0c;AI代码生成技术正在彻底改变传…

作者头像 李华
网站建设 2026/3/2 11:32:11

在电机控制领域,永磁同步电机(PMSM)的无位置传感器控制一直是一个热门话题。今天,我们就来聊聊如何在工程中实现这一技术,特别是低速和高速度下的控制策略

永磁同步电机无位置传感器算法仿真&#xff0c;低速IF中高速龙贝格观测器&#xff0c;这是工程中最常用最成熟的方法。 低速采用流频比IF控制&#xff0c;转速开环&#xff0c;电流闭环&#xff0c;转速和位置角度使用参考转速和计算的参考位置。 中高速采用了基于龙贝格观测器…

作者头像 李华