1-Kafka入门-尚硅谷
按"概念→安装→操作→开发"顺序组织,答案力求一句话说清。

### 文章目录
- [1-Kafka入门-尚硅谷](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [@[toc]](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [1. Kafka 基础概念](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [2. 环境安装(Windows单机)](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [3. 主题操作(命令行)](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [4. 生产与消费](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [5. 源码阅读(可选)](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
- [6. 记忆口诀](#文章目录 1-Kafka入门-尚硅谷 @[toc] 1. Kafka 基础概念 2. 环境安装(Windows单机) 3. 主题操作(命令行) 4. 生产与消费 5. 源码阅读(可选) 6. 记忆口诀)
1. Kafka 基础概念
| 知识点 | 一句话答案 |
|---|---|
| 1.1 初识Kafka | Scala+Java写的高吞吐分布式发布订阅系统,2010年LinkedIn出品,2012成为Apache顶级项目。 |
| 1.2 消息队列 | 传输数据的中间件,Kafka没完全遵循JMS规范,故名字里无MQ。 |
| 1.3 JMS五大件 | Provider、Message、Producer、Consumer、Destination(Queue/Topic)。 |
| 1.4 P2P vs 发布订阅 | P2P一条消息只被一个消费者 取走;发布订阅一条消息可被多个订阅者同时消费,Kafka采用后者。 |
| 1.5 生产者-消费者模式 | 用队列当缓冲区解耦削峰,单机用阻塞队列,分布式用Kafka这类中间件。 |
| 1.6 中间件对比 | Kafka10万级吞吐、毫秒延迟、分布式高可用 ,适合大数据;ActiveMQ/RabbitMQ万级吞吐,适合JavaEE。 |
| 1.7 ZooKeeper作用 | 替Kafka保存元数据与节点状态,2.8+开始用Raft去ZK,4.x将彻底移除。 |
2. 环境安装(Windows单机)
| 知识点 | 一句话答案 |
|---|---|
| 2.1 所需版本 | Java 8即可,Kafka 3.6.1内置Scala 2.12,无需另装Scala。 |
| 2.2 安装包 | 下载kafka_2.12-3.6.1.tgz,解压到非系统盘,目录改短如E:/kafka。 |
| 2.3 启动ZK | 改config/zookeeper.properties中dataDir,执行 zookeeper-server-start.bat ../../config/zookeeper.properties。 |
| 2.4 启动Kafka | 改server.properties中log.dirs,执行 kafka-server-start.bat ../../config/server.properties;jps看到Kafka进程即成功。 |
3. 主题操作(命令行)
| 知识点 | 一句话答案 |
|---|---|
| 3.1 创建主题 | kafka-topics.bat --bootstrap-server localhost:9092 --create --topic 名字 |
| 3.2 列表/详情 | --list看所有主题;--describe --topic 名字看分区副本等细节。 |
| 3.3 修改主题 | --alter --partitions 新分区数(只能增)。 |
| 3.4 删除主题 | --delete --topic 名字;Windows易锁文件,建议Linux再做。 |
4. 生产与消费
| 知识点 | 一句话答案 |
|---|---|
| 4.1 命令行生产 | kafka-console-producer.bat --bootstrap-server localhost:9092 --topic 名字,回车即发送。 |
| 4.2 命令行消费 | kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic 名字 --from-beginning |
| 4.3 图形工具 | Kafka Tool连localhost:9092可可视化收发消息。 |
| 4.4 Java 生产 | 引kafka-clients 3.6.1,配BOOTSTRAP_SERVERS + KEY/VALUE序列化,new KafkaProducer<>(conf).send(record)。 |
| 4.5 Java 消费 | 配BOOTSTRAP_SERVERS + 反序列化 + group.id,consumer.subscribe(Arrays.asList("topic")),poll循环取ConsumerRecord。 |
5. 源码阅读(可选)
| 知识点 | 一句话答案 |
|---|---|
| 5.1 所需环境 | JDK 17 + Scala 2.13 + Gradle,导入kafka-3.6.1-src.tgz后gradle build --exclude-task test再IDEA打开。 |
6. 记忆口诀
"Kafka快似飞,发布订阅不排队;ZK管元数据,去ZK等4.x;先启ZK再启K,主题生产消费一条龙。"