Kafka 核心使用机制总结
- Kafka 核心使用机制总结
- 1. 分区 (Partitions) - 实现伸缩性与并行处理
- 2. 副本 (Replicas) / 复制因子 (Replication Factor) - 实现高可用与容错
- 3. 消费者组 (Consumer Groups) - 控制消息分发与消费进度
- 4. 数据保留策略 (Retention Policies) - 管理存储空间
- 5. Kafka 功能测试示例 (`test-topic`)
Kafka 核心使用机制总结
1. 分区 (Partitions) - 实现伸缩性与并行处理
- 概念: 一个 Kafka 主题 (Topic) 可以被划分为一个或多个分区。每个分区是一个独立的、有序的日志流。
- 目的: 主要为了提高 Kafka 的伸缩性 (Scalability) 和吞吐量 (Throughput)。
- 并行写入: 生产者可以同时向不同分区发送消息。
- 并行消费: 一个消费者组内的多个消费者实例可以同时从不同的分区读取消息。
- 我们设置了 3 个分区: 对于
test-topic
(下文测试示例),设置 3 个分区允许最多 3 个属于同一个消费者组的消费者实例并行工作,每个实例负责一个分区。 - 顺序保证: Kafka 只保证在一个分区内部的消息是严格有序的。不同分区之间的消息顺序不保证。
- 注意: 一条消息只会属于一个分区。
2. 副本 (Replicas) / 复制因子 (Replication Factor) - 实现高可用与容错
- 概念: 为了数据冗余和故障恢复,每个分区可以有多个副本,这些副本必须分布在不同的 Broker 节点上。
- 复制因子: 指每个分区总共的副本数量(1 个 Leader + N 个 Follower)。
- Leader 与 Follower: 每个分区有且仅有一个 Leader 副本负责处理所有读写请求,其他 Follower 副本从 Leader 同步数据。
- 高可用性: 如果持有 Leader 副本的 Broker 宕机,Kafka 会自动从同步的 Follower 中选举出新的 Leader,确保服务几乎不中断且数据不丢失。
- 我们设置了 3 个副本 (复制因子=3): 在 3 节点的 Kafka 集群中,设置复制因子为 3 是最高容错配置。
test-topic