Kafka简介#
Kafka 本质上是一个分布式流式处理平台,主要功能是消息队列(Message Queue)。它以高吞吐量、低延迟和可扩展性而闻名,被广泛应用于实时数据管道和流应用程序。使用消息队列的优点:
-
解耦:Kafka 允许生产者和消费者独立地开发、部署和扩展。生产者无需关心消费者是否存在或如何处理消息,消费者也无需了解生产者的具体实现。
-
可恢复性:Kafka 将消息持久化到磁盘,并进行备份。即使消费者或生产者出现故障,消息也不会丢失,系统恢复后可以继续处理消息。
-
缓冲/削峰填谷:Kafka 可以作为缓冲区,平滑生产者和消费者之间的速度差异。当生产者生产速度过快时,Kafka 可以暂时存储消息,避免消费者过载;当消费者处理能力不足时,Kafka 可以暂存消息,保证消息不会丢失。
-
灵活性和峰值处理能力:Kafka 的分布式架构和水平扩展能力使其能够应对高并发和突发流量。通过增加 Kafka 集群的节点,可以轻松提高系统的吞吐量和处理能力。
-
Kafka 支持异步通信模式。生产者将消息发送到 Kafka 后,无需等待消费者的确认,可以继续执行其他任务。
Kafka 的其他特性:
-
持久化存储: 消息被持久化到磁盘,具有高可靠性,可以防止数据丢失。
-
分布式架构: Kafka 集群可以扩展到数百台服务器,处理海量数据。
-
高吞吐量: Kafka 能够处理每秒数百万条消息。
-
实时性: Kafka 能够提供低延迟的消息传输。
前置准备#
本教程默认 Kafka 解压目录为
D:\Software\kafka-4.3.1,所有命令均在此目录下执行
前往 Kafka 官网下载页 ↗ 下载最新版 Kafka 并解压到你想要的目录。
解压后的目录结构如下:
D:\Software\kafka-4.3.1\
├── bin/
├── config/
├── logs/
└── kafka-logs/ ← 需要手动创建plaintext第一步:创建日志目录#
在 Kafka 主目录下执行:
mkdir kafka-logsbatkafka-logs 这个目录主要是存放分区的offerset,元文件,记录消费到哪里等信息。
第二步:修改配置文件#
用记事本打开 config\server.properties,找到或添加以下配置,将 log.dirs 指向刚才创建的目录:
log.dirs=D:/Software/kafka-4.3.1/kafka-logsproperties注意:Windows 路径必须使用正斜杠
/,不要使用反斜杠\。
第三步:生成集群 UUID#
执行以下命令生成集群唯一标识符:
bin\windows\kafka-storage.bat random-uuidbat复制输出的 UUID(例如 PfMHLGgsQt2vnlHTHN2MBg),后续步骤会用到。
输出中可能出现 Log4j 相关的警告信息,可以安全忽略。
第四步:格式化日志目录#
将上一步生成的 UUID 替换到以下命令中,执行格式化:
bin\windows\kafka-storage.bat format --standalone -t 你的UUID -c config\server.propertiesbat示例:
bin\windows\kafka-storage.bat format --standalone -t PfMHLGgsQt2vnlHTHN2MBg -c config\server.propertiesbat第五步:启动 Kafka Server#
bin\windows\kafka-server-start.bat config\server.propertiesbat看到日志中出现类似 [KafkaServer id=0] started 的信息即表示启动成功。保持此窗口运行,不要关闭。
第六步:验证安装#
另开一个 CMD 窗口,同样在 Kafka 主目录下执行:
bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092bat若命令正常返回(无报错),说明 Kafka 已安装配置成功。
推荐工具:Kafka GUI 客户端#
命令行操作虽然高效,但日常开发调试时,一款好用的可视化工具可以大幅提升效率。推荐 Kafka-King ↗,一个现代、实用的 Kafka 桌面客户端。
主要特性:
- 🎨 简洁直观的 UI,上手零门槛
- 📊 支持查看和管理 Topic、Partition、Consumer Group
- 🔍 实时消费消息,支持多种反序列化格式
- ⚡ 轻量级,无需额外依赖,开箱即用
前往 Kafka-King Releases ↗ 下载最新版本即可使用,连接时填入 localhost:9092 就能连上本地 Kafka 服务。