Windows安装Kafka(kafka_2.12-3.9.1),配置Kafka,以及遇到的困难解决方案

news/2025/9/21 11:31:37/文章来源:https://www.cnblogs.com/ljbguanli/p/19103332

Windows安装Kafka(kafka_2.12-3.9.1),配置Kafka,以及遇到的困难解决方案

目录

下载 Kafka

依赖项

安装

配置日志目录

修改配置文件

初始化存储目录

小插曲

启动 Kafka

验证 Kafka 是否正常工作


下载 Kafka

访问 Apache Kafka 官网,选择 Binary Downloads,下载 kafka_2.13-4.0.0.tgz(支持 Windows/Linux)。

依赖项

Kafka 4.0 基于 JDK 17 编译,需提前安装并配置 JAVA_HOME 环境变量。

安装

将压缩包解压至短路径目录(如:E:\Kafka)

配置日志目录

创建 Kafka 日志目录(如 E:\Kafka\data\kafka\kafka-logs)。

修改配置文件

打开 config\server.properties,修改以下关键参数:

# 日志路径(使用双反斜杠)
log.dirs=E:\\Kafka\\data\\kafka\\kafka-logs

初始化存储目录

生成集群 ID:

// 进入目录:E:\Kafka\kafka\bin\windows下
// 输入命令
kafka-storage.bat random-uuid

输出示例如下:

上述日志中有个错误提示可以忽略。记录此ID:JnhYFIOcRXipOJdyvUlVcA
打开 config\server.properties,增加以下关键参数:

# 集群唯一标识(之前生成的 UUID)
cluster.id=JnhYFIOcRXipOJdyvUlVcA
# 控制器选举配置(单机模式示例)
controller.quorum.voters=1@localhost:9093

Kafka 4.0 默认使用 KRaft 模式(Kafka Raft Metadata),取代了旧版的 ZooKeeper。在 KRaft 模式下,controller.quorum.voters 是必需配置,用于指定集群的控制器节点。

格式化日志目录:

// 进入目录:E:\Kafka\kafka\bin\windows下
kafka-storage.bat format -t JnhYFIOcRXipOJdyvUlVcA -c ..\..\config\kraft\server.properties

表明 Kafka 存储格式化成功

小插曲

这个错误表明您正在尝试使用 KRaft 模式格式化存储,但配置文件是针对 旧版的 Zookeeper 模式的。Kafka 从 3.0 版本开始引入了 KRaft 模式(不再需要 Zookeeper)。

所以应该使用kraft版本的配置文件

# 使用 kraft 版本的配置文件
kafka-storage.bat format -t JnhYFIOcRXipOJdyvUlVcA -c ..\..\config\kraft\server.properties

启动 Kafka

bin\windows 目录下执行:

kafka-server-start.bat ..\..\config\kraft\server.properties

成功标志:日志输出如下内容且无致命错误:

验证 Kafka 是否正常工作

新开两个cmd窗口

#创建一个名为 test-topic 的主题:
E:\Kafka\kafka\bin\windows>kafka-topics.bat --create --topic test-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092

#验证刚刚创建的主题是否正确添加:
E:\Kafka\kafka\bin\windows>kafka-topics.bat --list --bootstrap-server localhost:9092
test-topic

#发送和接收消息
E:\Kafka\kafka\bin\windows>kafka-console-producer.bat --bootstrap-server localhost:9092 --topic test-topic
>Hello Kafka
>this is a test message
>i am codesandwich

#在另一个cmd窗口
E:\Kafka\kafka\bin\windows>kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning
Hello Kafka
this is a test message
i am codesandwich

圆满成功!!!

如果我的内容对你有帮助,请辛苦动动您的手指为我点赞,评论,收藏。感谢大家!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

准备工作之动态内存分配[基于郝斌课程]

定义一块内存可以用数组定义,也可以动态分配: 使用数组定义一块内存,则该块内存是静态的,也就是一旦定义之后,这块内存的大小就固定了,例如,数组元素个数是5,则定义后,这=这块内存大小就是5,不能再改变 但是…

2025.6第一套六级听力生词

"Escalate" 是一个英语动词,在不同语境下有不同的含义,常见用法包括: 升级/加剧‌ 指问题、冲突或局势的严重性增加。例句:The dispute escalated into a full-scale war.(争端升级为全面战争。) (正…

CSP-S 2025游记

初赛 day -1 赛前最后一次去机房 , 尽管前三年都随便考过了 , 但今年不知道为什么特别紧张 , 害怕考以前没出过的类型 (伏笔) day 0 足球赛 被虐了 , 给腿跑软了 , 顶级后卫这一块 中午一点压力都没有了 , 睡觉是…

Chapter 5 Wrap Perspective

# width, height = 458, 371 width, height = 250, 350pts1 = np.float32([[109, 220], [282, 189], [154, 483], [353, 434]]) pst2 = np.float32([[0, 0], [width, 0], [0, height], [width, height]])matrix = cv2.…

atof() - 字符串转double类型

引言 atof() 函数是 C 标准库中用于将字符串(ASCII 字符串)转换为双精度浮点数(double 类型) 的函数,其名称来源于 “ASCII to Float” 的缩写,主要用于处理包含小数或科学计数法的字符串。 一、基本信息 函数原…

完整教程:还在为第三方包 bug 头疼?patch-package 让你轻松打补丁!

完整教程:还在为第三方包 bug 头疼?patch-package 让你轻松打补丁!pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

Kubernetes(k8s)高可用性集群的构建

1. 规划集群架构控制平面节点(Masters) :至少部署3个控制平面节点以实现高可用性。 工作节点(Workers) :数量根据负载需求决定。 负载均衡器:至少1个,用于分发流量至多个控制平面节点。2. 前期环境准备确保所有…

深入解析:解密llama.cpp:从Prompt到Response的完整技术流程剖析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

在CentOS环境下升级GCC编译器

CentOS作为一个以稳定性和安全性著称的Linux发行版,它默认包含的软件包和工具通常不是最新版本的,这样做的好处是可以提供一个测试时间更长、更加稳定可靠的系统环境。然而,有时候我们需要用到最新版本的GCC编译器来…

详细介绍:深圳比斯特|电池组PACK自动化生产线厂家概述

详细介绍:深圳比斯特|电池组PACK自动化生产线厂家概述pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

Chapter 4 Shapes and Texts

# [[0. 0. 0 # img = np.zeros(shape=(512, 512)) # [[[0 0 0] img = np.zeros(shape=(512, 512, 3), dtype=np.uint8) # print(img)# Blue 这里还是先 Height,然后是 Width,如果只写255,就是白色了 img[:] = 255,0…

手动清除Ubuntu系统中的内存缓存

在Linux系统中,如Ubuntu,内核会自动管理内存,包含缓存(cache)和缓冲区(buffers)去提升系统性能。操作系统通常会将部分内存空间用作缓存来临时存储文件数据,这样当文件再次被访问时能够加快读取速度。然而,在…

Twitter舆情裂变链:指纹云手机跨账号协同机制提升互动率200% - 教程

Twitter舆情裂变链:指纹云手机跨账号协同机制提升互动率200% - 教程2025-09-21 11:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto …

2025年9月底总结

2025年9月底总结这是一次临时起意的总结。工作 平淡的进行。 没太多特别的。 最近突然对内部的开源市场感兴趣,写了个简单的小脚本,看看能不能帮一些同事解决实际上的问题,天天都看下下载量,还是挺有成就感的。还有…

技术文章

该篇文章无摘要WEBCAST: BHIS网络直播世界巡演 - 亚利桑那站直播 John Strand// 作为BHIS网络直播世界巡演的一部分,我们在凤凰城新开放的亚利桑那网络战靶场(AZCWR)举办了现场活动。 查看活动详情和照片: https:/…

深入解析:AutoGPT原理与实践:构建能“自主完成任务”的AI智能体

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

dolphindb vscode更改连接配置的操作步骤 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

插值相关

通常的,我们被给到一个函数在一些点上的值,我们可以用高斯消元在 \(O(n^3)\) 的时间复杂度内求出对应的多项式 当我们只被要求求出其中的的一个点时,我们可以使用插值这个工具在 \(O(n^2)\) 的时间复杂度之内求解。…

密码学学习记录(三)

密码学学习记录(三)《图解密码技术》[1]学习记录密码算法可以分为分组密码(block cipher)和流密码。 分组密码只能加密固定长度的明文,因为不知道明文的长度,所以一般需要对分组密码进行迭代,而迭代的方法就被称…

详解scheduleAtFixedRate 与 scheduleWithFixedDelay 的区别

scheduleAtFixedRate:是以period为间隔来执行任务的,如果任务执行时间小于period,则上次任务执行完成后会间隔period后再去执行下一次任务;但如果任务执行时间大于period,则上次任务执行完毕后会不间隔的立即开始…