目录
Kafka 架构
Kafka 工作原理
Kafka 数据流
Kafka 焦点特性
总结
Kafka 架构
1. 生产者(Producer)
2. 消耗者(Consumer)
3. 主题(Topic)
4. 分区(Partition)
5. 副本(Replica)
6. 代理(Broker)
7. ZooKeeper(旧版本)/KRaft(新版本)
Kafka 工作原理
1. 消息生产
2. 消息存储
3. 消息消耗
4. 向导者推举
5. 集群和谐
Kafka 架构
Kafka 是一个分布式流处理平台,焦点架构包括以下组件:
- Producer(生产者):
- 负责将消息发布到 Kafka 的 Topic 中。
- Consumer(消耗者):
- Broker(服务器):
- Kafka 集群中的每个节点都是一个 Broker,负责消息的存储和转发。
- Topic(主题):
- 消息的逻辑分类,生产者将消息发送到特定 Topic,消耗者从 Topic 订阅消息。
- Partition(分区):
- 每个 Topic 可以分为多个 Partition,分区是 Kafka 并行处理的根本单位,每个分区是一个有序、不可变的消息序列。
- Replica(副本):
- 每个 Partition 可以有多个副本,分布在差别的 Broker 上,确保数据的高可用性和容错性。
- Leader 和 Follower:
- 每个 Partition 有一个 Leader 副本和多个 Follower 副本,Leader 负责处理读写哀求,Follower 从 Leader 同步数据。
- Zookeeper:
- 用于管理 Kafka 集群的元数据、Broker 状态、Leader 推举等。
<hr> Kafka 工作原理
- 消息发布:
- Producer 将消息发送到指定的 Topic,消息根据分区计谋(如轮询、哈希等)分配到某个 Partition。
- 消息存储:
- 消息以追加(Append)的方式写入 Partition 的日志文件(Log Segment),Kafka 不会修改或删除已写入的消息。
- 消息复制:
- Leader Partition 将消息复制到所有 Follower Partition,确保数据冗余和高可用性。
- 消息消耗:
- Consumer 从 Partition 拉取消息,每个 Consumer 属于一个 Consumer Group,组内的 Consumer 共同消耗一个 Topic 的消息,每个 Partition 只能被组内的一个 Consumer 消耗。
- Offset 管理:
- Consumer 通过 Offset 记录消耗进度,Kafka 将 Offset 存储在内部 Topic(__consumer_offsets)中,确保消耗状态可规复。
- 日志清理:
- Kafka 提供两种日志清理计谋:
- 日志删除(Log Retention):根据时间或大小删除旧数据。
- 日志压缩(Log Compaction):保留每个 Key 的最新值,适用于 Key-Value 场景。
- 高可用性:
- 通过副本机制和 Leader 推举实现高可用性。如果 Leader 失效,Zookeeper 会从 ISR(In-Sync Repl
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |