在Windows上用Kafka处理实时数据流需依次完成服务启动、主题创建、生产者发送与消费者接收:先确认Java 8+并配置JAVA_HOME,解压Kafka至无空格/中文路径,用管理员CMD启动ZooKeeper和Kafka Broker,再创建realtime-logs主题,最后通过控制台生产者发送JSON日志、消费者实时接收。

在Windows系统上用Kafka处理实时数据流传输任务,需完成服务启动、主题创建、生产者发送与消费者接收四个连贯环节,缺一不可,否则消息无法端到端流动。
确认Java环境并解压Kafka
打开命令提示符,执行 java -version,确保输出包含 1.8.0_ 或更高版本号;若失败,必须先安装JDK 8+ 并配置 【JAVA_HOME 环境变量】,否则后续所有脚本将报“找不到或无法加载主类”错误。
访问 https://kafka.apache.org/downloads ,下载 kafka_2.13-3.6.1.tgz(当前最新稳定版),解压至路径如 C:\kafka,【严禁解压到含空格或中文的目录,例如“C:\Program Files\kafka”或“D:\我的软件\kafka”】,否则 zookeeper-server-start.bat 会因路径解析失败而静默退出。
启动ZooKeeper与Kafka Broker
方法一:依赖内置ZooKeeper(推荐初学者)
第一步:以管理员身份打开CMD,进入Kafka根目录:cd /d C:\kafka\kafka_2.13-3.6.1
第二步:启动ZooKeeper服务:bin\windows\zookeeper-server-start.bat config\zookeeper.properties。窗口中出现 binding to port 0.0.0.0/0.0.0.0:2181 即成功,此窗口必须保持开启。
第三步:另开一个管理员CMD窗口,同样进入Kafka根目录,执行:bin\windows\kafka-server-start.bat config\server.properties。看到日志末尾出现 started (kafka.server.KafkaServer) 表示Broker已就绪。
创建Topic并验证结构
新开第三个CMD窗口,执行以下命令创建名为 realtime-logs 的主题:
bin\windows\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic realtime-logs
注意:Kafka 3.3+ 默认弃用 --zookeeper 参数,改用 --bootstrap-server 直连Broker;若误用旧参数会提示“Unknown option: --zookeeper”。
Windows 桌面自动化技能,支持鼠标控制(移动/点击/拖拽/滚轮/截图)、键盘输入(文字输入/按键/组合键)、窗口管理(查找/聚焦/最大化/最小化/关闭/移动)、截图并发送文件。提供两种截图方式:Python pyautogui 截图(集成在自动化流程中)和 PowerShell + .NET 零依赖截图(支持区域截图和多显示器)。当用户需要自动化 Windows 桌面操作、控制鼠标键盘、管理窗口、执行 GUI 自动化任务、截图发送文件时使用。
验证是否创建成功:bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092,输出中应包含 realtime-logs。
启动控制台生产者发送模拟数据
执行命令启动生产者:
bin\windows\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic realtime-logs
光标变为 > 后,每行输入一条JSON格式日志,例如:
{"timestamp":"2026-10-23T16:20:00","service":"auth","status":200,"latency_ms":42}
按回车即发送,无需额外按键;每条消息会被自动分配到3个分区中的某一个,由Kafka内部算法决定。
启动控制台消费者实时接收
再开第四个CMD窗口,执行:
bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic realtime-logs --from-beginning
此时生产者窗口刚输入的每条JSON,会在消费者窗口**秒级回显**;--from-beginning 确保从头消费,适合调试;若只想接收新消息,去掉该参数即可。










