基本概念
kafka 中的生产过程设计多个概念的配合,理清这些概念的关系,有利于了解 kafka 的生产机制。
角色 | 作用 |
---|---|
producer | 生产音讯,向 kafka 推送音讯,非 kafka 组件之一 |
topic | 逻辑概念,用于组织一类音讯 |
broker | broker 运行着 kafka 实例 |
partition | 存储同一个 topic 的分区(多个分区独特存储一个 topic 的音讯) |
replication | partition 的正本,为保障稳定性,同一个 partition 须要在不同 broker 上设置备份 |
leader | partition 的泛滥 replication 的一个,生产方向其中写入,生产方从中读取 |
follower | partition 除 leader 外的 replication。用于备份 partition 的内容保障稳定性 |
下图直观反映了 kafka 的各种概念的关系。
zookeeper 在 kafka 中的角色
zookeeper 为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。它能够保障一致性和分区容错性,在 kafka 中 zookeeper 为 broker,producer 和 consumer 提供统一的配置信息。在上面的解说中咱们将会具体展现。
生产过程
- produce 会计算本条音讯须要发送的 partition。
- produce 依据发送的分区,向 zookeeper 获取对应 partition 的 leader 信息,发送音讯到 leader 所在的 broker。
- leader 在本地记录该音讯。
- follower 通过轮询监控到 leader 新写入音讯,被动拉取音讯。
- follower 同步音讯胜利向 leader 发送 ack。
- leader 收到所有 follower 同步的音讯,向 producer 发送确认 ack。