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

文章目录
- 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,主题生产消费一条龙。”