news 2026/4/18 3:45:09

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/4/15 11:02:37

【AIGC】侧脸引起的AIGC 角色一致性崩坏

AI 绘图界有一句名言:“不要画 90 度侧脸,除非你能接受换人。” 这张图确实出现了典型的AIGC 角色一致性崩坏(Character Consistency Failure)。 虽然头发颜色(绿色)和胡子(绿色)对上了,但脸部骨骼、五官特征完全变成了另外一个人(看起来像是一个通用的西方男性模型…

作者头像 李华
网站建设 2026/4/16 23:48:32

AI革命倒计时:2026年,不可解释的AI将被市场淘汰!

进入 2026 年,AI之间真正的差异化已经不在功能、不在价格,甚至不在技术本身,而在于——你敢不敢解释你的 AI。消费者正在快速升级他们的判断体系:算法不透明,就是不可信;决策不可解释,就是不安全…

作者头像 李华
网站建设 2026/4/16 15:13:44

Wan2.2-T2V-A14B为何能在众多T2V模型中脱颖而出

Wan2.2-T2V-A14B为何能在众多T2V模型中脱颖而出 你有没有想过,未来拍电影可能不再需要摄影机、演员和导演?只需要一句话:“夕阳下,穿汉服的女孩在樱花树前转身,长发随风飘起”——然后,视频自动生成。&…

作者头像 李华
网站建设 2026/4/12 23:47:08

C++编程中关于螺旋数组的解题思路

对于给定的一个输入变量n,要求绘出一个n*n的二维数组,要求从数字1开始,从左到右,从上到下,进行螺旋式的填充,每填充一个数字,变量值1。 这类问题基本上要考虑四个方向,用0&#xff…

作者头像 李华
网站建设 2026/4/13 18:30:50

3步搞定MeterSphere集群高并发:Nginx负载均衡完整解决方案

3步搞定MeterSphere集群高并发:Nginx负载均衡完整解决方案 【免费下载链接】metersphere MeterSphere 一站式开源持续测试平台,为软件质量保驾护航。搞测试,就选 MeterSphere! 项目地址: https://gitcode.com/gh_mirrors/me/met…

作者头像 李华