基本概念
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。