Kafka 101
Work in progress.
基本概念
消费者与主题分区

消费者订阅主题进行消费,而主题是一个逻辑上的概念,它还可以细分为多个分区,一个分区只属于单个主题。
同一主题下的不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。offset 是消息在分区中的唯一标识,Kafka 通过它来保证消息在分区内的顺序性,同时 Kafka 保证的是分区有序而不是主题有序。
分区也解决了单个 Topic 对应一个持久化文件可能导致的 IO 瓶颈。
在消费者拉取消息时,只能消费高水位之前的消息,也就是只能消费已提交的消息。分区 ISR(同步副本) 集合中的每个副本都会维护自身的 LEO,而 ISR 集合中最小的 LEO(LogEndOffset,当前日志中最后一条消息的 offset + 1,也就是该副本当前复制到的位置) 即为分区的高水位。
Kafka 的复制机制基于动态的 in-sync replicas(ISR)集合,leader 只需等待 ISR 中所有副本确认而非全部副本,从而在避免完全同步复制的高延迟的同时,又通过强制 ISR 确认提供了比单纯异步复制更强的数据可靠性。
安装与配置
仓库地址:L2ncE/Kafka101
克隆仓库后进入到 docker-compose 文件 目录运行 docker-compose up
或直接运行 ./quick-start.sh
。
⚠️ 注意:自行下载 Docker 以及 docker-compose 工具。 📌 部署版本为 Kafka2.8.1,该版本使用 KRaft 无需部署 Zookeeper。
最后更新于