Kafka 菜鸟教程:从入门到实践
一、Kafka 核心概念
Kafka 是 Apache 开发的分布式流处理平台,核心功能包括:
-
发布/订阅消息:类似消息队列,支持多生产者、多消费者;
-
持久化存储:以 append log 形式存储消息,支持长期保留;
-
实时流处理:可对数据流进行转换、聚合等操作。
关键术语解释:
-
Topic(主题):消息的“类别”,所有消息按主题分类存储(如“用户订单”“日志事件”)。
-
Partition(分区):Topic 的物理分片,用于扩展吞吐量(一个 Topic 可分为多个 Partition,分布在不同 Broker 上)。
-
Broker(代理):Kafka 集群中的节点,负责存储和转发消息(单机部署时仅需 1 个 Broker)。
-
Producer(生产者):向 Topic 发送消息的应用程序。
-
Consumer(消费者):从 Topic 订阅并处理消息的应用程序(同一 Consumer Group 内的消费者共享消息,不同 Group 则广播)。
二、环境准备
1. 系统要求
-
操作系统:支持 Linux、macOS、Windows(本文以 Linux 为例,Windows 步骤类似);
-
Java 环境:Kafka 依赖 Java 8+,需提前安装(
java -version检查版本); -
磁盘空间:建议预留至少 10GB(用于存储消息日志)。
2. 安装 Kafka
(1)下载 Kafka
从 Apache 官网下载最新稳定版本(以 3.6.1 为例):
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
(2)解压并进入目录
tar -xzf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
(3)配置 Kafka
修改 config/server.properties文件(关键配置):
# Broker 唯一 ID(单机设为 0)
broker.id=0
# 数据存储目录(建议选磁盘大的路径)
log.dirs=/tmp/kafka-logs
# 监听地址(本地用 localhost,生产环境用服务器 IP)
listeners=PLAINTEXT://localhost:9092
# Zookeeper 连接地址(Kafka 依赖 Zookeeper 管理集群)
zookeeper.connect=localhost:2181
三、启动 Kafka
1. 启动 Zookeeper(Kafka 依赖)
Kafka 使用 Zookeeper 存储集群元数据,需先启动:
bin/zookeeper-server-start.sh config/zookeeper.prope