前言
本文从概念层面介绍 Kafka 是什么、整体架构、核心概念(Topic、Partition、Replica、ISR、消费组)以及一条消息从生产到消费的完整流转路径。
版本
Kafka 2.8.2
一、Kafka 是什么
Kafka 最初由 LinkedIn 开发,后捐赠给 Apache 基金会,是一个用 Scala/Java 编写的分布式事件流平台。它常被称作消息队列,但更准确的定位是分布式提交日志平台——核心是一个高吞吐、可持久化、可分区的追加式日志。
它解决的核心问题:
- 高吞吐的消息发布与订阅:单机每秒可处理数十万条消息
- 消息持久化:消息落盘,消费后按 retention 策略保留一段时间,支持多消费者重复消费
- 水平扩展:通过分区把负载分散到多个 Broker
- 故障容忍:通过副本机制,单个 Broker 宕机不影响服务
和传统消息队列(如 RabbitMQ)相比,Kafka 的设计取向不同:RabbitMQ 侧重灵活路由和即发即收,消息被消费后即删除;Kafka 侧重日志的持久化和顺序,消息按 offset 保留,消费者可以任意回退重读。这个差异决定了后面所有核心概念的设计。
more >>