Windows安装Apache Kafka保姆级详细教程(图文+可视化管理工具)

 更新时间:2025年11月15日 10:29:50   作者:笃行其道  
本文详细介绍了在Windows系统上安装和配置Apache Kafka的步骤,适合初学者,从环境准备到启动服务,再到测试功能和设置为Windows服务,每个步骤都提供了详细的图文教程,最后,还介绍了如何使用KafkaTool进行可视化管理,感兴趣的朋友跟随小编一起看看吧

一、前言

Apache Kafka是一个分布式流处理平台,广泛用于构建实时数据管道和流应用程序。本教程将详细介绍如何在Windows系统上安装和配置Kafka,适合初学者跟随操作。

二、环境准备

2.1 系统要求

  • Windows 7/8/10/11 (64位)
  • 至少4GB内存
  • 至少2GB可用磁盘空间

2.2 安装Java环境

Kafka需要Java 8或更高版本支持。

  1. 访问Oracle官网下载JDK 8或以上版本
  2. 选择Windows版本下载

💡 提示:可以参考这篇博客来安装JDK 8:JDK8保姆级安装教程

三、下载与解压Kafka

3.1 下载Kafka

  1. 访问Kafka官网:https://kafka.apache.org/downloads
  2. 选择最新稳定版本的二进制文件
  3. 推荐下载Scala 2.13版本

⚠️ 注意:本教程使用kafka_2.13-3.5.1版本,该版本自带ZooKeeper。进入官网下载页面后下拉,找到kafka_2.13-3.5.1版本下载。

文件名类似:kafka_2.13-3.5.1.tgz

3.2 解压Kafka

  1. 将下载的文件解压到简单路径,如:C:\kafka
  2. 避免路径中包含空格和中文字符

四、配置Kafka

4.1 目录结构说明

解压后的Kafka目录包含以下重要文件夹:

  • bin/windows/ - Windows批处理脚本
  • config/ - 配置文件
  • libs/ - 依赖库
  • logs/ - 日志文件(启动后生成)

4.2 修改配置文件

编辑server.properties

  1. 进入config目录
  2. 用记事本打开server.properties文件

  1. 修改以下关键配置:
# 数据存储目录(改为Windows路径格式)
log.dirs=C:/kafka/kafka_2.13-3.5.1/kafka-logs
# 监听地址
listeners=PLAINTEXT://localhost:9092
# Zookeeper连接地址
zookeeper.connect=localhost:2181

五、启动Kafka服务

5.1 启动Zookeeper

Kafka依赖Zookeeper进行集群协调。

  1. 打开命令提示符
  2. 切换到Kafka安装目录:
    cd C:\kafka\kafka_2.13-3.5.1
  3. 启动Zookeeper:
    bin\windows\zookeeper-server-start.bat config\zookeeper.properties

看到"binding to port 0.0.0.0/0.0.0.0:2181"表示启动成功。

5.2 启动Kafka服务器

  1. 新开一个命令提示符窗口
  2. 切换到Kafka目录:
    cd C:\kafka\kafka_2.13-3.5.1
  3. 启动Kafka服务器:
    bin\windows\kafka-server-start.bat config\server.properties

5.3 解决wmic命令问题

如果遇到'wmic' 不是内部或外部命令错误,说明wmic不在系统PATH环境变量中。

解决方案一:添加wmic到PATH

  1. 打开文件资源管理器,导航到 C:\Windows\System32\Wbem
  2. 检查是否存在wmic.exe
  3. 如果存在,将该目录添加到PATH环境变量中,不存在的话使用解决方案二:安装wmic工具

添加方式:

  • 打开环境变量设置
  • 在系统变量中找到Path,点击编辑
  • 点击新建,添加:C:\Windows\System32\Wbem

解决方案二:安装wmic工具

如果上述目录中不存在wmic.exe

  1. 进入Windows设置页面
  2. 点击系统可选功能
  3. 点击查看功能
  4. 搜索wmic,勾选后点击下一步
  5. 点击添加,等待安装完成

安装完成后测试:

重新启动Kafka:

看到"started (kafka.server.KafkaServer)"表示启动成功。

六、测试Kafka功能

6.1 创建Topic

  1. 新开第三个命令提示符窗口
  2. 创建测试Topic:
    cd C:\kafka\kafka_2.13-3.5.1
    bin\windows\kafka-topics.bat --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

6.2 查看Topic列表

bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

6.3 测试生产者和消费者

启动消费者:

bin\windows\kafka-console-consumer.bat --topic test-topic --from-beginning --bootstrap-server localhost:9092

启动生产者(新窗口):

bin\windows\kafka-console-producer.bat --topic test-topic --bootstrap-server localhost:9092

在生产者窗口输入消息,消费者窗口应该能实时接收到。

七、设置为Windows服务(可选)

⚠️ 注意:执行此步骤前,请关闭所有之前打开的Zookeeper和Kafka窗口,防止端口占用。

7.1 下载NSSM工具

  1. 下载NSSM(Non-Sucking Service Manager):NSSM官网
  2. 解压到C:\nssm目录

7.2 创建Zookeeper服务

cd C:\nssm\nssm-2.24\win64
nssm install ZookeeperService

在弹出界面中配置:

  • Path: C:\kafka\kafka_2.13-3.5.1\bin\windows\zookeeper-server-start.bat
  • Arguments: C:\kafka\kafka_2.13-3.5.1\config\zookeeper.properties

7.3 创建Kafka服务

nssm install KafkaService

配置参数:

  • Path: C:\kafka\kafka_2.13-3.5.1\bin\windows\kafka-server-start.bat
  • Arguments: C:\kafka\kafka_2.13-3.5.1\config\server.properties

7.4 启动服务

  1. 打开"服务"管理器(Win + R,输入 services.msc)
  2. 找到"ZookeeperService"和"KafkaService"服务
  3. 先启动ZookeeperService,再启动KafkaService
  4. 可设置启动类型为"自动",实现开机自启

八、验证安装

8.1 检查服务状态

cd C:\kafka\kafka_2.13-3.5.1
bin\windows\kafka-broker-api-versions.bat --bootstrap-server localhost:9092

8.2 安装Kafka Tool可视化工具

  1. 访问下载页面:https://www.kafkatool.com/download.html
  2. 下载并安装offsetexplorer_64bit.exe

安装步骤:

  • 双击安装文件
  • 选择"I accept the agreement"
  • 自定义安装目录
  • 完成安装

配置连接:

  1. 启动Kafka Tool
  2. 点击File → Add New Connection
  3. 配置连接参数:
    • Cluster name: Local Kafka
    • Kafka Cluster Version: 3.5
    • Bootstrap servers: localhost:9092
  4. 点击Test测试连接

九、常见问题解决

9.1 端口占用问题

现象: 启动时报错"Address already in use"

解决方案:

# 检查端口占用
netstat -ano | findstr :9092
netstat -ano | findstr :2181

结束占用进程或修改端口配置

9.2 内存不足问题

现象: 启动时内存溢出

解决方案:
修改bin\windows\kafka-server-start.bat文件中的JVM参数:

set "KAFKA_HEAP_OPTS=-Xmx512M -Xms512M"

9.3 路径问题

现象: 找不到文件或目录

解决方案:

  • 确保路径不包含中文和空格
  • 使用正斜杠"/“代替反斜杠”"
  • 检查配置文件中的路径设置

9.4 防火墙问题

现象: 远程无法连接Kafka

解决方案:
在Windows防火墙中开放9092和2181端口

十、总结

通过本教程,我们成功在Windows系统上完成了Apache Kafka的完整安装和配置,包括Java环境准备、Kafka下载解压、配置文件修改、服务启动、功能测试以及可选的Windows服务配置。现在已经拥有了一个完全可用的Kafka环境,可以开始构建实时数据流应用程序,进行消息队列的生产和消费操作。

到此这篇关于Windows安装Apache Kafka保姆级教程(图文详解+可视化管理工具)的文章就介绍到这了,更多相关Windows安装Apache Kafka内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java编程实现时间和时间戳相互转换实例

    Java编程实现时间和时间戳相互转换实例

    这篇文章主要介绍了什么是时间戳,以及Java编程实现时间和时间戳相互转换实例,具有一定的参考价值,需要的朋友可以了解下。
    2017-09-09
  • SpringBoot 对象转换 MapStruct的实现小结

    SpringBoot 对象转换 MapStruct的实现小结

    MapStruct是一个基于注解的Java对象映射工具,通过在编译时生成映射代码实现高效的对象转换,下面就来详细的介绍一下SpringBoot 对象转换 MapStruct的实现,感兴趣的可以了解一下
    2026-02-02
  • SpringBoot整合Lucene实现全文检索的详细步骤

    SpringBoot整合Lucene实现全文检索的详细步骤

    全文搜索(Full-Text Search)是指对大规模存储在计算机系统中的文本数据进行检索和匹配的技术,它允许用户输入关键字,然后从海量的文本数据中快速找到相关的信息,本文介绍了SpringBoot整合Lucene实现全文检索的详细步骤,需要的朋友可以参考下
    2024-03-03
  • SpringBoot整合Guava Cache实现全局缓存的示例代码

    SpringBoot整合Guava Cache实现全局缓存的示例代码

    这篇文章主要介绍了SpringBoot整合Guava Cache实现全局缓存,Guava Cache是Google Guava库中的一个模块,提供了基于内存的本地缓存实现,文中介绍了SpringBoot整合使用Guava Cache的具体步骤,需要的朋友可以参考下
    2024-03-03
  • Java实现计算图中两个顶点的所有路径

    Java实现计算图中两个顶点的所有路径

    这篇文章主要为大家详细介绍了如何利用Java语言实现计算图中两个顶点的所有路径功能,文中通过示例详细讲解了实现的方法,需要的可以参考一下
    2022-10-10
  • Java观察者设计模式(Observable和Observer)

    Java观察者设计模式(Observable和Observer)

    这篇文章主要介绍了 Java观察者设计模式(Observable和Observer)的相关资料,需要的朋友可以参考下
    2015-12-12
  • SpringBoot 动态配置邮箱发件人过程解析

    SpringBoot 动态配置邮箱发件人过程解析

    这篇文章主要介绍了SpringBoot 动态配置邮箱发件人过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • java如何强制删除java程序占用的文件

    java如何强制删除java程序占用的文件

    这篇文章主要介绍了java如何强制删除java程序占用的文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 教你一步到位部署运行MyBatis3源码(保姆级)

    教你一步到位部署运行MyBatis3源码(保姆级)

    一个框架的运行流程从最简单的一个helloworld来看其源码就能了解到框架的原理是什么,这篇文章主要给大家介绍了关于如何一步到位部署运行MyBatis3源码的相关资料,需要的朋友可以参考下
    2022-06-06
  • java 字符串相减(很简单的一个方法)

    java 字符串相减(很简单的一个方法)

    本篇文章是对java中关于字符串相减的一个简单的方法进行了介绍,需要的朋友参考下
    2013-07-07

最新评论